python学习—Day34—python文件访问
使用for循环遍历文件:
•open
r:以读方式打开
w :以写方式打开 \\文件存在,内容会被覆盖。不存在创建。
a :以追加模式
r+ :以读写模式打开
w+:以读写模式打开(参见 w )
a+:以读写模式打开(参见 a )
rb:以二进制读模式打开
wb:以二进制写模式打开(参见 w )
ab:以二进制追加模式打开(参见 a )
rb+:以二进制读写模式打开(参见 r+ )
wb+:以二进制读写模式打开(参见 w+ )
ab+: 以二进制读写模式打开(参见 a+)
•withopen
对于文件的操作:
fd = open(' /tmp/tmp.txt' 'a')
\\以追加的方式进行写入
fd.write('123/n')
\\写入123.必须以字符串的格式写入
fd.close()
\\对文件操作完毕后需要关闭
fd.read()
\\读取文件,并且是游标形式读取。第一次读取完成,之后再执行后面就没有内容了。
fd.seek() fd.tell
\\可以用来搜集日志,进行日志倒读。大概这个意思。
fd.readline()
\\按行读取,返回字符串
fd.readlines()
\\返回列表.占用内存。一般不用这种方法
fd.next()
\\也是每次读取一行。
#@File :open_for.py
with open('/tmp/tmp.txt') as fd: \\with的用法
while True: \\while这里是个死循环,但是后面有结束语句break
line = fd.readline()
if not line:
break \\如果读到文件末尾,line为空,则退出程序。
print line,
读取/tmp/tmp.txt文件。作业:统计linux系统的free内存。
python知识扩展—数据类型转换(计算MAC地址):
数据类型转换:(列表和字典相互转换)
#@File :text_demo.py
s = 'abc'
l = list(s) #字符串转换成列表
print (l)
print(''.join(l))
print(type(''.join(l)))
print('.'.join(l)) #列表转换成字符串
print(tuple(l)) #字符串转换成元组
print(''.join(tuple(l))) #元组转换成字符串
dic = {'a':1, 'b':2}
print(dic.items()) #字典=>列表
print(dict(dic.items())) #列表=>字典(这里需要注意不是所有的列表都可以转换成字典。需要一定的格式
['a', 'b', 'c']
abc
<type 'str'>
a.b.c
('a', 'b', 'c')
abc
[('a', 1), ('b', 2)]
{'a': 1, 'b': 2}
abc
<type 'str'>
a.b.c
('a', 'b', 'c')
abc
[('a', 1), ('b', 2)]
{'a': 1, 'b': 2}