21 文件打开模式 b

230次阅读
没有评论

共计 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'))
正文完
 
shawn
版权声明:本站原创文章,由 shawn 2023-06-16发表,共计666字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)