您的位置:首页 > 编程语言 > Python开发

Python进阶01 文件处理

2016-03-20 13:37 513 查看
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


本文出自 “好大的刀” 博客,请务必保留此出处http://53cto.blog.51cto.com/9899631/1753087
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: