文件操作
对文件操作流程
- 打开文件,得到文件句柄并赋值给一个变量
- 通过句柄对文件进行操作
- 关闭文件
基本操作
import codecs #主要用来解决乱码问题 f = codecs.open('1.txt','r') print (f.read()) f.close()
打开文件的模式有:
r: 读的方式
w:写的方式打开
a:以追加的方式
r+ 读写模式
w+ 读写
a+ 读写
rb:二进制读模式打开
wb:以二进制写模式打开
ab 二进制追加模式
rb+ 二进制读写
wb+二进制读写
ab+二进制读写
with open
fd= open('/usr/local/python/1.txt','w') 打开文件
fd.close 关闭函数
fd.write("a") 写入字符串
fd.read() 读文件,默认从头到结尾,加数值表示读到第几位
fd.readline() 读一行 返回字符串
fd.readlines() 读多行 返回列表
实例:
1 or遍历文件 2 #!/usr/bin/python 3 4 fd = open('/usr/local/python/1.txt') 5 for i in fd: #fd.readlines()(占用内存资源) 6 print i, 7 8 fd.close()
1 while遍历文件 2 #!/usr/bin/python 3 4 5 fd = open('/usr/local/python/1.txt') 6 while True: 7 i = fd.readline() 8 if not i: 9 break 10 print i, 11 fd.close()
with 文件 with open('/usr/local/python/1.txt') as fd: 自动关闭文件 while True: i = fd.readline() if not i: break print i,
2、数据类型转换:
十六进制转换成十进制 int('a',16) 十进制转换成十六进制 hex(11) 十进制转换成字符串 str(12) 字符串转换成十进制 int(‘10’) 必须纯数字 字符串转换列表 list(string) 列表转换字符串 ''.join(list) ' '.join(s) 以空来分隔字符 字符串转换元组 tuple(string) 元组转字符串 ''.join(tuple) 字典转换成列表 dic.items() 列表转字典 dict(dic) 不是所有的列表都可以转变成字典,除非是列表里包含俩个字符的小列表或者元组才能转换
示例:
计算mac地址 #!/usr/bin/python macaddr = '00:0c:29:d1:6f:0a' prefix_mac = macaddr[:-3] last_two = macaddr[-2:] plus_one = int(last_two, 16) +1 if plus_one in range(10): new_last_two = hex(plus_one)[2:] new_last_two = '0' + new_last_two else: new_last_two = hex(plus_one)[2:] if len(new_last_two) == 1: new_last_two = '0' + new_last_two print new_last_two print prefix_mac+':'+new_last_two