TypeError: can‘t concat str to bytes

城俊BLOG發表於2020-11-04

這是python2和python3的一個差別,python2可以直接將位元組和字串拼接,python3不可以:

$ python2
Python 2.7.18 (default, Aug  4 2020, 11:16:42)
[GCC 9.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> b'\x00\x00\x80@\x00\x00\xa0@'+''
'\x00\x00\x80@\x00\x00\xa0@'

$ python3
Python 3.7.4 (default, Aug 13 2019, 20:35:49)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> b'\x00\x00\x80@\x00\x00\xa0@'+''
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't concat str to bytes

解決方法:要麼兩邊都轉成字串,要麼兩邊都轉成位元組
這裡提供兩邊都轉成位元組的方法:

>>> b'\x00\x00\x80@\x00\x00\xa0@'+b''
b'\x00\x00\x80@\x00\x00\xa0@'

其他:https://blog.csdn.net/yatere/article/details/6606316

相關文章