如何从python中的文本文件中的特定行打印

我正在使用此代码搜索特定的字符串:

stringToMatch = 'blah'
matchedLine = ''
#get line
with open(r'path of the text file', 'r') as file:
    for line in file:
        if stringToMatch in line:
            matchedLine = line
            break
#and write it to the file
with open(r'path of the text file ', 'w') as file:
    file.write(matchedLine)

即使它多次出现,也只会打印一次字符串。我还想在出现特定单词后打印所有行。我怎么做?

评论
  • eet
    eet 回复
    stringToMatch = 'blah'
    matchedLine = ''
    
    # get line
    lines = ''
    match = False
    with open(r'path of the text file', 'r') as file:
        for line in file:
            if match:
                # store lines if matches before
                lines += line + '\n'
            elif stringToMatch in line:
                # If matches, just set a flag
                match = True
    
    # and write it to the file
    with open(r'path of the text file ', 'w') as file:
        file.write(lines)
    
  • Donne
    Donne 回复

    设置一个标记以跟踪何时看到该行,并在同一循环中将这些行写入输出文件。

    string_to_match = "blah"
    should_print = False
    with open("path of the text file", "r") as in_file, open("path of another text file", "w") as out_file:
        for line in in_file:
            if string_to_match in line:
                # Found a match, start printing from here on out
                should_print = True
            if should_print:
                out_file.write(line)