1 读文件
1.1 读文本文件
读文件一般包括如下三个步骤:
- try:
- f = open('/path/to/file', 'r')# 打开文件
- print(f.read()) #读取文件内容
- finally:
- if f:
- f.close()# 关闭连接
简写方式:[Python 引入了 with 语句来自动帮我们调用 close() 方法, 和之前的 try...finally...close() ]
- with open('/path/to/file', 'r') as f:
- print(f.read())
文件读取方法:
如果文件很小, read() 一次性读取最方便;
如果不能确定文件大小, 反复调用 read(size) 比较保险: 每次最多读取 size 个字节的内容
用 readline() 可以每次读取一行内容
如果是配置文件, 调用 readlines() 最方便: 一次读取所有内容并按行返回 list
1.2 读二进制文件 (音视频)
>>> f = open('/Users/michael/test.jpg', 'rb')
1.3 指定读取文件的字符编码
>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
针对包含有非法编码字符的文件, 可能遇到 UnicodeDecoderError, 可通过 open 函数的 errors='ignore'忽略
>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
2 写文件
方法与度文件一样, 这是模式为 w
建议 with 写法:
- with open('/Users/michael/test.txt', 'w') as f:
- f.write('Hello, world!')
注: 写文件时, 操作系统不会直接把数据写入磁盘, 而是放到内存缓存起来, 空闲的时候再慢慢写. 如果没有调用 close() 方法, 操作系统不会直接把内存中的缓存数据写到磁盘, 可能会有部分数据丢失.
w: 覆盖存在的文件
a: 追加在存在文件后
3 内存读写
字符串读写 StringIO
二进制数据读写 BytesIO
参考:
来源: http://www.bubuko.com/infodetail-3399728.html