python - TypeError : write() argument must be str, 不是字节,升级到 python 3

标签 python python-3.x

<分区>

我正在尝试将我的代码升级到 python 3。 这条线有一些问题,

output_file = open(working_dir + "E"+str(s)+".txt", "w+")

output_file.write(','.join(headers) + "\n")

并得到这个错误TypeError: sequence item 0: expected str instance, bytes found

我试过的,

  output_file.write(b",".join(headers) + b"\n")

TypeError: write() argument must be str, not bytes

我也尝试过在连接上使用 decode(),也尝试过在打开时使用 rw+b

如何在 python 3 中转换为 str

最佳答案

编辑:阅读如何将bytes转换为string,遵循link由 Martijn Pieters 在“重复”标签中提供。

我最初的建议

output_file.write(','.join([str(v) for v in values]) + "\n")

举个例子

values = [b'a', b'b', b'c']
print(','.join([str(v) for v in values]))
# b'a',b'b',b'c'

因此,尽管这有效,但可能并不理想。如果 bytes 应该被解码,请使用 bytes.decode()(最好也使用提供的适当编码,例如 bytes.decode('latin-1'))

values = [b'a', b'b', b'c']
print(','.join([v.decode() for v in values]))
# a,b,c

关于python - TypeError : write() argument must be str, 不是字节,升级到 python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57226135/

相关文章:

Python - 在 Mac 上安装 opencv 时遇到问题(几个月前 opencv 运行良好之后)

python - Python 3 中大规模、强力最大化的高效多处理

python-3.x - print ('>>>' ) 结果是空行?

python - Tweepy 语法和 Twitter 流 api

python - imaplib 和 poplib python 的证书颁发机构

python - pandas.DataFrame.drop_duplicates(inplace=True) 抛出 'TypeError: unhashable type: ' dict''

python - 我正在用 Python3(也使用 Tkinter)制作一个 mp3 付款器,但我正面临死胡同

python - 两个矩阵的元素之间的组合

python - 当前使用的 Python 版本是什么,包应该支持哪些版本?

python-3.x - 我的进程在开始训练、 tensorflow 对象检测时被终止