1.简单的读文件
fd=open('test.txt')
lines = fd.read()
print lines
fd.close()
打开为只读
fd=open('test.txt','r')
其实等价于fd=open('test.txt')
第二个参数默认为r.
读二进制文件
fd=open('test.txt','rb')
追加写
fd=open('test.txt','w+')
总结:
r只读,r+读写,w会覆盖原有文件,a追加
b二进制文件 常用rb wb r+b
2.写
fd.write('laurawan')
fd.writelines(list_of_text_strings)
使用writelines写入多行在性能上会比使用write一次性写入要高。
3.读
读取的是所有内容
lines = fd.read()
读固定字节
fd.read(100)
读行
fd.readlines()
读取的是所有内容
fd.readlines(siehint)
e.g.
fd=open('test.txt')
sizehint = 500
position = 0
lines = fd.readlines(sizehint)
while fd.tell()-position>0:
position=fd.tell()
lines = fd.readlines(sizehint)
fd.close()
4.其他
fd.flush()
#把缓冲区的内容写入硬盘
fd.fileno()
#返回一个长整型的文件标签
fd.next()
#返回下一行
fd.seek(offset[,whence])
#将文件操作标记移到offset位置。
#默认为从文件的开头开始计算
#whence 0表示从头开始计算 默认
1表示从当前位置为原点开始计算
2表示以文件尾为原点开始计算
如果文件以a或a+的模式打开,每次进行写操作,文件操作标记都会自动返回到文件尾。
fd.truncate([size])
#把文件截成规定的大小,默认的是截到文件操作标记的当前位置。
如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件填充到相应的大小,也可能是以随机的内容加上去。