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

Python: IO操作(文件操作)

2017-11-13 22:17 281 查看

读文件

使用python内置的函数open()可以打开一个文件(类似C语言):

f = open('file.txt', 'r')
f.read()
f.close()


文件读写时可能都会出错,产生IoError,一旦出错f.close()就不能用,所以我们可以使用try…finally

try:
f = open('file.txt', 'r')
f.read()
finally:
if f:
f.close()


with方法

with open('xxx.txt', 'r') as f:
print(f.read())

# 使用with语句不用调用close()


调用read()会一次性读取文件的全部内容,为了保险起见,可反复调用read(size)方法,每次最多读取size个字节,另外,调用readline()可以每次读取一行内容,调用readlines()一次性读取所有内容并返回list

如果文件很小,read()方法最方便;如果不能确定文件的大小,可反复调用read(size);如果是读取配置文件,那么readlines()最方便

for line in f.readlines():
print(line.spilt())     # 把末尾的'\n'删掉


要读取非UTF-8编码的文本文件,需要给open()函数传入enconding参数,如:

f = open('gbk_file', 'r', enconding='gbk')
f.read()


遇到编码不规范的的文件,你可能遇到++UnicodeDecodeError++,因为在文本中可能夹杂了一些非法编码的字符。遇到这种情况++open()++\函数还要传入一个++errors++参数,表示遇到编码错误后怎么处理,最简单的方法就是忽略

f = open('code_error', 'r', encoding='gbk', errors='ignore')


写文件

读文件和写文件是一样的,唯一的区别就是open()行数所传的标识符,’w’或’wb’表示写文本文件或者二进制文件

f = open('test.txt', 'w')
f.write('Hello, python')
f.close()


你可以调用write()函数一直写文件,但必须使用f.close()函数关闭文件。当我们写文件时,操作系统不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再写。忘记调用close()可能会使后面的数据丢失,所以还是用with比较保险

with open('test.txt', 'w') as f:
f.write('hello, python')


要给文件写入指定编码的数据,可以给write()函数传入特定的encoding参数

总结:

不管是读文件还是写文件,操作完成后都要调用close()来关闭文件

但是调用with… as就可以省去close()了

可以指定读取和写入文件编码方式,就是在对用函数中加入encoding=’xxx’

读取编码不规范的文本,可以忽略,在read()函数中加入errors=’ignore’
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python