Python中file()与open()区别
两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两种文件打开方式有本质的区别,file为文件类,用file()来打开文件,相当于这是在构造文件类,而用open()打开文件,是用python的内建函数来操作,建议使用open
操作基本一样,此处以file来演示
r 读 w 写 a 追加 r+ 读写 w+ 写读 (会先丢失文件) rb 处理win文件(传网络文件) f = file('test.txt','w') f.write('The is a day1\n') f.write('The is a day2\n') f.write('The is a day3\n') f.close() \\ 退出保存 重新打开文件会丢失内容 f = file('test.txt','w') f.write('The is a day1 \n') f.write('The is a day2 \n') f.write('The is a day3 \n') f.flush() #刷新到内存 读 f = file('test.txt','r') #不加r,默认会是r f.read() #读文件 f.readline() #一行一行的读 f.readlines() #读剩下所有行,以列表形式显示 f.tell() #查看到多少个字节 f.seek(0) #指定到第0个字节 追加 f = file('test.txt','a') f.write('This a new line....') f.flush() f.readline() 'The is a day1\n' >>> f.readline() 'The is a day2\n' >>> f.readline() 'The is a day3\n' 取第一行 contents = f.read() contents.split('\n')[0] #取第一行 contents2 = f.readlines() contents2[0] readlines #全部读到内存 是把文件的全部内容读到内存,并解析成一个list,当文件的体积很大的时候,需要占用很多内存,使用该方法是一种不明智的做法。 xreadlines #节约内存 一种迭代占用更小的内存,而且更加智能(依赖于Python文件对象的实现),所需文件内容是自动从buffer中按照需要读取的,是值得鼓励的做法。 文件内容替换 import fileinput,tab for line in fileinput.input('FilePath',inplace=1): line =line.replace('old_txt','new_txt') print line, 改之前做备份 for line in fileinput.input('filename.txt',inplace=1,backup='.bak'): line =line.replace('break','continue') print line, 好处:不需要关闭,自动关闭 with open('test.txt','r') as f: for i in f.readlines(): print i