我的代码如下:
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
我尝试了许多修复程序的许多组合,但是无论如何我都无法使它正常工作。任何帮助将不胜感激。
答案 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)