首页 > 代码库 > python 3.5: TypeError: a bytes-like object is required, not 'str'
python 3.5: TypeError: a bytes-like object is required, not 'str'
出现该错误往往是通过open()函数打开文本文件时,使用了‘rb’属性,如:fileHandle=open(filename,‘rb‘),则此时是通过二进制方式打开文件的,所以在后面处理时如果使用了str()函数,就会出现该错误,该错误不会再python2中出现。
具体解决方法有以下两种:
第一种,在open()函数中使用‘r’属性,即文本方式读取,而不是‘rb’,以二进制文件方式读取,可以直接解决问题。
第二种,在open()函数中使用‘rb’,可以在使用之前进行转换,有以下实例,来自:http://stackoverflow.com/questions/33054527/python-3-5-typeerror-a-bytes-like-object-is-required-not-str
1:查找文件时: with open(fname, ‘rb‘) as f: if b‘some-pattern‘ in tmp: continue 2:使用socketl连接时: mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) mysock.connect((‘www.py4inf.com‘, 80)) mysock.send(**b**‘GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n‘) while True: data = http://www.mamicode.com/mysock.recv(512)>
python 3.5: TypeError: a bytes-like object is required, not 'str'
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。