python can't concat str to bytes

今天一位群友,Python3也报了类似的错误:

TypeError:can't concat str to bytes

TypeError:can't concat str to bytes

原因:

不管是报上面哪种错误?终其根本原因都是:类型不一致所造成的。

一、can't concat bytes to str 解决方法

解决方法也很简单,使用字节码的 decode()方法。

示例:

str = 'I am string'
byte = b' I am bytes'
s = str + byte
print(s)

报错“TypeError: can't concat bytes to str”。

解决方法:

s = str + byte.decode()

二、can't concat str to bytes 解决方法

为了好理解,我就简单拿几个示例来说吧!大家就能瞬间明白了。

示例1:

out = open('train_data.txt', 'w')
for sentence in sentences:
    out.write(sentence.encode("utf-8")+"
")
print("done!")

报错“TypeError:can't concat str to bytes”

解决方法:

out.write(sentence.encode("utf-8")+b"
")

原因:write函数参数需要为str类型,需转化为str。

示例2:

with open('fujieace.txt', 'w') as f:
    for line in docLst:
        f.write(line + '
')

报错“TypeError:can't concat str to bytes”

解决方法:

这里只需要改两个地方,一个是把’w’改为‘wb’('wb'是字节写入。),一个是把‘ ’改为b’ ’。

with open('fujieace.txt', 'wb') as f:
    for line in docLst:
        f.write(line + b'
')

总结:

如果当你不知道它是什么类型的时候?python里可直接通过 type()函数 来查看数据类型。

原文地址:https://www.cnblogs.com/gisoracle/p/14405674.html