python中r,w,rb,wb的区别与联系

在Python中,文件对象的打开模式(如 'r', 'w', 'rb', 'wb' 等)决定了如何与文件进行交互。

一、'r' (Read)

用于读取文件。

文件必须存在,否则会引发 FileNotFoundError。

读取的是文本文件(如果文件是二进制文件,则需要解码)。

示例:with open('file.txt', 'r') as f: content = f.read()

二、'w' (Write)

用于写入文件。

如果文件已存在,其内容会被覆盖。

如果文件不存在,会创建一个新文件。

写入的是文本文件(如果数据是二进制,则需要编码)。

示例:with open('file.txt', 'w') as f: f.write('Hello, World!')

三、'rb' (Read Binary)

用于读取二进制文件。

文件必须存在,否则会引发 FileNotFoundError。

读取的是二进制数据,不需要解码。

示例:with open('file.bin', 'rb') as f: content = f.read()

四、'wb' (Write Binary)

用于写入二进制文件。

如果文件已存在,其内容会被覆盖。

如果文件不存在,会创建一个新文件。

写入的是二进制数据,不需要编码。

示例:with open('file.bin', 'wb') as f: f.write(b'\x00\x01\x02')

五、联系

这些模式都是open函数的参数,用于指定文件的打开方式。

除了上述的四种模式外,还有其他模式,如 'a'(追加模式,用于在文件末尾添加内容)、'x'(独占创建模式,如果文件已存在则引发异常)等。

所有的模式都可以与 'b' 结合使用,以指定文件为二进制模式。

六、区别

文本与二进制: 使用文本模式(如 'r'、'w')时,Python会自动处理文件的换行符(例如,在Windows系统中将 \n 转换为 \r\n)。而二进制模式(如 'rb'、'wb')则不会进行这种转换,直接读写原始数据。

文件内容: 使用写入模式(如 'w'、'wb')时,如果文件已存在,其内容会被覆盖。而读取模式(如 'r'、'rb')则不会修改文件内容。

文件存在性: 使用读取模式时,文件必须存在;而写入模式会在文件不存在时创建新文件。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳阳大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值