共计 666 个字符,预计需要花费 2 分钟才能阅读完成。
文件打开模式 "b"
- 与 t 模式类似,但不能单独使用,必须是 rb,wb,ab
- b 模式下读写都是以 bytes 单位的 字节模式
- b 模式下一定 不能指定 encoding 参数
- 读写文件都是以 bytes 为单位,不需要指定字符编码,可以读写 任意类型 的文件
1、r b 模式
with open('1.jpg',mode='rb',) as f: #不能添加 encoding 参数
l=f.read()
print(l)
print(type(l))
with open('db.txt',mode='rb',) as f:
l=f.read()
print(l.decode('utf-8')) #bytes 类型需要解码
print(type(l))
2、w b 模式
🍉用什么编码写就用什么编码读, 不然报错
with open('b.txt',mode='wb') as f:
msg='你好啊,派大星'
f.write(msg.encode('gbk')) #编码格式为’GBK‘🐬正确读取
with open('b.txt',mode='rb') as f:
l=f.read()
print(type(l)) #<class 'bytes'>
print(l.decode('gbk')) #解码格式为’GBK‘🐬错误读取
with open('b.txt',mode='rb') as f:
l=f.read()
print(type(l))
print(l.decode('utf-8')) #解码不对应, 报错!!
2、a b 模式
with open('b.txt',mode='ab') as f:
f.write('你好'.encode('utf-8'))
正文完