无论我做什么都无法将数据追加到文件

时间:2019-06-07 05:09:34

标签: python python-3.x append encode

我的代码如下:

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)

我一直在互联网上寻找答案,但是我所能获得的要么是“编码”(我做到了),要么在打开的语句中使用了“ a”而不是“ w”(我也做了) 。该程序产生的错误如下:

write() argument must be str, not bytes

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

1 个答案:

答案 0 :(得分:1)

像对.encode('utf-8')那样编码字符串时,最终得到一个字节字符串。

要能够将字节字符串写入(或追加)文件,您需要使用二进制标志打开文件。因此,您应该像这样使用a来代替ab

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)