主要按照分類標准來看,方便記憶:
- 是否可寫
- 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'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六進制表示的字節
對於編碼有特殊要求,可以添加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