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")+"\n") print("done!")

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

 

解决方法:

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

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

 

示例2:

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

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

 

解决方法:

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

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

 

总结:

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM