Python 2到3“ TypeError:需要一个类似字节的对象,而不是'str'”

时间:2019-09-28 11:40:31

标签: python

我正在尝试将代码从Python版本2转换为3。

错误:“ TypeError:需要一个类似字节的对象,而不是'str'

代码使用的是:

i++

我意识到错误与对象的类型有关,但我不知道如何解决该问题。我将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

BytesIO需要字节。因此,当您执行output.write(x)时,您需要x的字节类型。问题是linenewLine都是字符串类型。

您可以通过编码将它们转换为字节,但是由于您试图将output写入文件,因此最好的解决方案实际上是将BytesIO更改为StringIO。后者不会抱怨linenewLine是字符串,并且您将能够调用inputFile.write(output.getvalue()),只有在输出为StringIO时才可能。

答案 1 :(得分:0)

因此,您需要将字符串编码为字节,例如:bytes_like = some_string.encode('utf-8'),现在它应该可以工作,然后,如果需要字符串,则对字节进行解码,例如string_type = some_bytes.decode('utf-8')