Python匹配文件的行与字符串列表

时间:2016-10-14 21:25:43

标签: python python-3.x string-matching

高级要求是我需要等效的" 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])

1 个答案:

答案 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