• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gisoracle

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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()函数 来查看数据类型。

posted on 2021-02-15 22:40  gisai  阅读(6785)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3