【发布时间】:2015-03-19 16:02:45
【问题描述】:
我有一个大约 500 MB 的巨大文本文件,我需要打印与输入匹配的行,以及前 3 行和后 3 行。
我的文本文件如下所示:
...
...
...
benz is a nice car
...
...
...
its also said benz is a safe car
...
...
...
如果用户输入为“benz”,那么它应该为每个单独的匹配打印匹配前后的 3 行。
我的代码:-
users= raw_input('enter the word:')
with open('mytext.txt',rb) as f:
for line if f:
if users in line:
print line(i-3)
print line
print line(i+3)
但是我没有定义的错误
【问题讨论】:
-
正如@Lutz Horn 所建议的,grep 是一个不错的选择。自己做,你会用不必要的代码束缚自己,并可能让它像没有腿的狗一样执行。 Grep 已经出现了“一段时间”。它旨在搜索文本文件。如果您正在搜索文本并且 grep 可以满足您的所有需求,那么它是一个很好的选择。
标签: python