主要按照分类标准来看,方便记忆:
- 是否可写
- w 仅可写,写覆盖
- a 仅可写,写追加
- w+ 可以读写,写覆盖
- r+ 可以读写,写覆盖
- a+ 可以读写,写追加
- 是否可读
- r 仅可读
- r+ 可以读写
- w+ 可以读写
- a+ 可以读写
- 不可读的打开方式: w a
- 如果不存在会创建新文件的打开方式:a a+ w w+
前面讲的默认都是读取文本文件,并且是UTF-8编码的文本文件。要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可:
>>> f = open('/Users/michael/test.jpg', 'rb')
>>> f.read()
b'xffxd8xffxe1x00x18Exifx00x00...' # 十六进制表示的字节
对于编码有特殊要求,可以添加encoding选项
编码不规范的问阿金,遇到UnicodeDecodeError
,可能文本中夹杂非法编码字符,使用errors
参数,表示遇到后直接处理。常见的做法是忽略:
>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
参考:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017607179232640#0
https://blog.csdn.net/ztf312/article/details/472