高级要求是我需要等效的" grep -f match_str_file search_file"。
我有一个字符串列表,我需要在给定的文本文件中找到它。 该字符串可以出现在任何文件行的任何位置。
实现这一目标的有效方法是什么?
matchstr = ['string1',
'string2',
'string3',
...
'string1000']
with open('some_text_file') as file:
for line in file:
if <any matchstr> in line:
print( 'Found a match!', matchstr[x])
答案 0 :(得分:0)
试试这个:
matchstr = ['string1',
'string2',
'string3',
...
'string1000']
matches = []
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
while 1:
lines = file.readlines(file_len("fjiop.txt"))
if not lines:
break
for line in lines:
matches.append([match, line] for match in matchstr if match in line)
请注意,这将在生成器内创建生成器,以便循环使用:
for i in matches:
for j in i:
#do stuff