【问题标题】:Cannot append data to file no matter what I do无论我做什么都无法将数据附加到文件
【发布时间】:2019-10-22 14:29:30
【问题描述】:

我的代码如下:

generated_quote = '  '.join(generated) + '\n'
    generated_quote = str(generated_quote).encode('utf-8')
    with open("generated_quotes.txt", 'a') as f:
        f.write(generated_quote)

我在互联网上寻找答案,但我只能得到“编码”(我这样做了),或者在 open 语句中使用“a”而不是“w”(我也这样做了) .该程序产生的错误如下:

write() argument must be str, not bytes

我尝试了许多修复程序的多种组合,但无论如何我都无法使其正常工作。任何帮助将不胜感激。

【问题讨论】:

  • 去掉编码行会怎样?
  • @Loocid 它产生这个错误:‘ascii’编解码器不能编码字符‘\u2015’

标签: python python-3.x append encode


【解决方案1】:

当您像使用.encode('utf-8') 那样对字符串进行编码时,您最终会得到一个字节字符串。

为了能够将字节字符串写入(或附加)到文件,您需要使用二进制标志打开文件。因此,您应该使用 ab 而不是 a,如下所示:

generated_quote = '  '.join(generated) + '\n'
generated_quote = str(generated_quote).encode('utf-8')
with open("generated_quotes.txt", 'ab') as f:
    f.write(generated_quote)

【讨论】:

  • 非常感谢您的帮助,非常感谢! :D
猜你喜欢
  • 2012-03-11
  • 1970-01-01
  • 2023-01-30
  • 2011-04-26
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 2018-05-20
  • 2020-08-18
相关资源
最近更新 更多