Python 文件写入错误:'w+' 模式和编码问题

在 Python 中,使用 with open('./log.txt', 'w+', 'gbk') as f: 写入文件时,可能会遇到错误。错误原因是使用了错误的文件打开模式。

错误原因:

  • 文件打开模式错误: 'w+' 模式适用于写入文本文件,而 'wb+' 模式适用于写入二进制文件。由于 'gbk' 编码是字符编码,因此需要使用 'wb+' 模式。
  • 编码错误: 'gbk' 编码在处理中文时可能会出现乱码问题,建议使用 'utf-8' 编码。

解决方案:

将代码修改为如下:

with open('./log.txt', 'wb+') as f:
    f.write('2023-09-20 21:34:56 张波 号码: 13297083806 累计消耗的流量是: 16821 GB 本时段消耗流量: 271 GB'.encode('utf-8'))

解释:

  • 'wb+' 模式:以二进制模式打开文件,并允许读写操作。
  • 'utf-8' 编码:一种常用的字符编码,可以支持多种语言的字符。
  • encode('utf-8'):将字符串编码为 utf-8 编码的字节序列。

通过以上修改,代码就能正确地将文本写入文件了。


原文地址: https://www.cveoy.top/t/topic/ePMe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录