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

问题描述 投票:0回答:2

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

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)

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

python python-3.x text
2个回答
2
投票

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

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)

0
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.