python文件打开方式

主要按照分类标准来看,方便记忆:

  • 是否可写
    • 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

日积月累,水滴石穿
原文地址:https://www.cnblogs.com/lonelyisland/p/12789204.html