我以二进制模式打开文件。我需要在此文件中找到某个字符串,然后在其后打印该行。但是,在文本文件中似乎找不到该字符串。我手动查看了文本文件,并且该字符串肯定在一行中。
我尝试以文本文件形式(不是二进制模式)打开文件,并且未将字符串设为二进制,但这给了我用this question解决的错误。该问题的答案导致了下面(和当前)代码。
with open(os.path.join(directory, filename), 'rb') as read_obj:
# print(read_obj.read())
for line in read_obj:
line_number += 1
if b"PREPARED FOR" in line:
break
print(line_number)
好所以。显然.readlines()
起作用了。我只需要阅读所有行,然后遍历它们。找到其中包含字符串的索引,调用该索引并添加一个以查找下一行。