控制文件读写内容的模式

发布时间 2023-12-05 20:11:29作者: 苏苏!!

控制文本读写格式

  • t(默认的):文本模式
    • 读写都是以字符串的为单位的
    • 只能针对文本文件
    • 必须加入encoding参数
  • b:二进制模式
    • 读写文件都是以bytes/二进制为单位
    • 可以针对所有的文件
    • 不可以加入encoding参数
  • 前提:
    • b / t模式都不能单独使用,必须与r / w / a之一结合使用。

(1)t模式

  • t 模式:默认方式,我们指定的文件的打开模式就是r / w / a,默认的就是rt / wt / at。
# t模式
#  r    w   a 默认的就是rt   wt  at
# with open('01.txt','rt',encoding='utf-8') as  f:
#     res=f.read()
#     print(res)#syh
#     print(type(res))#<class 'str'>

# with open('01.txt','wt',encoding='utf-8') as  f:
#     res='hello world'
#     f.write(res)#写入的也必须为字符串类型
  • 强调:t 模式只能用于操作文本文件,无论读写,都应该以字符串为单位,而存取硬盘本质都是二进制的形式,当指定 t 模式时,内部帮我们做了编码与解码。

(2)b模式

  • b 模式读写都是二进制单位。
# b模式
#
# with open('01.txt','rb') as  f:
#     res=f.read()
#     print(res)#b'hello world'
#     print(type(res))#读出时为bytes类型

# with open('01.txt','wb') as  f:
#     res='苏毅航'
#     res1=res.encode('utf-8')#将字符串转为bytes数据类型
#     f.write(res1)#在b 模式下写入文件时,必须是bytes类型
  • 强调:b模式对比t模式
    • 在操作纯文本文件方面t模式帮我们省去了编码与解码的环节,b模式则需要手动编码与解码,所以此时t模式更为方便。
    • 针对非文本文件(如图片、视频、音频等)只能使用b模式。

(3)练习

编写拷贝工具

#源文件路径为:D:\old boy\python\python28基础\day10\girl.jpg
#新文件路径为:D:\old boy\python\python28基础\day10\img\girl.jpg


#编写拷贝工具
#1.先写入源文件路径
old=input("源文件路径为:")
#2.再写入拷贝的新文件路径
new=input('新文件路径为:')
#3.先读取源文件的内容,再将源文件的内容写入新的文件中
with open(old,'rb')as read_f,open(new,'wb') as write_f:
    write_f.write(read_f.read())
# 常见二进制格式文件后缀:
# .bin:通常用于存储计算机程序或数据的二进制文件,例如操作系统、应用软件和游戏等。
# .dmg:这是苹果公司Mac OS X操作系统中常用的磁盘映像文件格式,可以将多个文件打包成一个文件来方便传输和安装。
# .exe:这是Windows操作系统中的可执行文件扩展名,包含可直接运行的程序代码。
# .msi:这是Microsoft Windows中的一种安装包文件格式,包含了安装所需的全部文件和信息。
# .rar:这是一种常见的压缩文件格式,使用这种格式可以将多个文件压缩成一个较小的文件以节省空间。
# .zip:这是另一种常见的压缩文件格式,与.rar类似,也可以将多个文件压缩成一个较小的文件。


# 常见的图片文件后缀(二进制格式)
#   * .jpg:这是最常用的照片文件格式,通常具有较高的图像质量。
#   * .jpeg:这也是照片文件格式,通常比.jpg格式更小,但图像质量稍低。
#   * .png:这是一种无损压缩的图像文件格式,通常用于创建透明背景的图像。
#   * .gif:这是一种支持动画效果的图像文件格式,通常用于创建简单的动态图形。


# 常见的音频文件后缀(二进制格式)
#   * .bmp:这是一种位图图像文件格式,通常用于打印或处理高质量图像。
#   * .tiff:这是一种标签图像文件格式,通常用于专业级别的图像处理和输出。
#   * .mp4:这是一种常用的视频文件格式,广泛用于互联网上的视频分享和流媒体服务。
#   * .mov:这是Apple公司开发的一种视频文件格式,通常用于其产品中的视频编辑和播放功能。
#   * .avi:这是一种早期的视频文件格式,被广泛用于电影制作和电视节目录制等领域。