TypeError:在Python 3中写入文件时需要一个类似字节的对象,而不是‘str’。我最近迁移到Py 3.5。这段代码在Python2.7中运行正常:with open(fname, 'rb') as f:
lines = [x.strip() for x in f.readlines()]for line in lines:
tmp = line.strip().lower()
if 'some-pattern' in tmp: continue
# ... code升级到3.5之后,我得到了:TypeError: a bytes-like object is required, not 'str'最后一行(模式搜索代码)出现错误。我试过用.decode()函数在语句的任何一方,也尝试:if tmp.find('some-pattern') != -1: continue-徒劳无功。我能够迅速解决几乎所有的2:3问题,但这个小小的声明困扰着我。
3 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
with open(fname, 'rb') as f:
bytes
str
if 'some-pattern' in tmp: continue
bytes
tmp
if b'some-pattern' in tmp: continue
'rb'
'r'
.
添加回答
举报
0/150
提交
取消