IO文件操作-b模式详解及案例

t模式与b模式都是控制文件读写内容的模式

一、t模式与b模式对比

  t(默认的):文本文件模式

   1.读写都是以字符串(unicode)为单位

    2.只针对类型为文本文件格式

    3.必须指定encoding = ‘utf-8’

  b:二进制模式

   1.读写文件都是以bytes/二进制为单位

   2.可以针对任何文件类型

   3.一定不能指定encoding参数

  总结:1.在操作文本文件方面,用t模式更方便,省去了编码和解码的环节,b模式则需要手动的去编码和解码

     2.针对非文本文件时,只能用b模式,如:图片、视频、音频等,所有的文件类型都可以用b模式

二、b模式的使用

  案例一:读写都是以二进制为单位(bytes)

    with open(r'E:\py\文件IO操作-b模式\企业微信截图_20201209110959.png',mode='rb') as f:
     res = f.read()  
    print(type(res))   # 输出结果为<class 'bytes'>
 案例二:写入内容到文本文件中,需要手动编码与解码
    with open(r'bytes.txt',mode='wb') as f:
      # 写入文件的内容为str类型,但是b模式为二进制模式,这时需要手动的去指定写入的编码格式
      # 这里指定为什么编码格式在打开文件时就要以什么编码格式打开,否则会出现乱码,通常编码格式指定为utf-8
      f.write('写入文件的内容'.encode='utf-8')  

  案例三:拷贝文件

    input1 = input("输入源文件路径:").strip()  # 输入源文件路径,去掉前后空格

    input2 = input("输入目标文件路径:").strip()

    with open(r'%s' %input1,mode='rb') as f,\  # 读源文件内容

      open(r'%s' %input2,mode='wb') as f1:  # 写文件

      for i in f:  # 循环读取源文件内容

       f1.write(i)  # 把读取的源文件内容写入目标文件地址        

posted @ 2020-12-20 00:38  A熙  阅读(428)  评论(0)    收藏  举报