gpt4 book ai didi

python - "TypeError: a bytes-like object is required, not ' str '"在Python 3中处理文件内容时

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:20 26 4
gpt4 key购买 nike

我最近迁移到了 Python 3.5。此代码在 Python 2.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 中,在 if 'some-pattern' in tmp: continue 行上,我收到一条错误消息:

TypeError: a bytes-like object is required, not 'str'

我无法使用 in 两侧的 .decode() 修复问题,也无法使用

修复问题
    if tmp.find('some-pattern') != -1: continue

出了什么问题,如何解决?

最佳答案

您以二进制模式打开了文件:

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' 来将文件作为文本文件打开。

关于python - "TypeError: a bytes-like object is required, not ' str '"在Python 3中处理文件内容时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53005229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com