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约个会:29.企业级开发进阶1:文件输入输出流[IO操作]
- 快速入门Python中文件读写IO是如何来操作外部数据的?
- Python基础之IO文件目录的操作
- 【Python学习笔记】IO编程:操作文件和目录
- Python之IO-文件的操作
- Python文件读写IO操作
- [Python进阶-7]文件和目录的IO操作,以及json序列化和反序列化
- Python的异步文件IO操作
- 函数知识及文件IO操作(python快速入门精华切记03)
- Python的IO操作之文件读写与序列化
- Python 12:Python 文件io操作模块
- Python中的文件IO操作(读写文件、追加文件)
- Python文件操作IO open 读-取-写
- Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化
- python -- 文件和IO操作
- Python文件基础操作(IO入门1)
- Python学习-文件操作IO
- 【Python】[IO编程]文件读写,StringIO和BytesIO,操作文件和目录,序列化
- Python 文件IO操作的补充说明
- Python入门程序:文件操作和IO异常