如何让python连续检查文本文件中的项目

如何让python连续检查文本文件中的项目,python,python-3.x,text,Python,Python 3.x,Text,我有以下代码: with open('file.txt', encoding="utf8") as inputFile: data = inputFile.readlines() inputFile.close() for i, line in enumerate(data): if any([x in line for x in ['nl']]): with open("nl.txt", "w+&qu

我有以下代码:


with open('file.txt', encoding="utf8") as inputFile:
    data = inputFile.readlines()
    inputFile.close()

for i, line in enumerate(data):
    if any([x in line for x in ['nl']]):
        with open("nl.txt", "w+") as nl:
            nl.write(line)
    if any([x in line for x in ['be']]):
        with open("be.txt", "w+") as be:
            be.write(line)
    if any([x in line for x in ['pl']]):
        with open("pl.txt", "w+") as pl:
            pl.write(line)
    if any([x in line for x in ['de']]):
        with open("de.txt", "w+") as de:
            de.write(line)


这段代码搜索文本文件中的关键字,以及是否将整行写入文本文件。但由于某种原因,它在得到一个结果后停止。如何使其循环,直到文件中的所有行都已检查完毕?

您在模式
w+
中打开文件,覆盖以前的任何内容,导致它只找到一个结果的错觉。用
open
像这样更改行以使用模式
a+

with open('file.txt', encoding="utf8") as inputFile:
    data = inputFile.readlines()
    inputFile.close()

for i, line in enumerate(data):
    if any([x in line for x in ['nl']]):
        with open("nl.txt", "a+") as nl:
            nl.write(line)
    if any([x in line for x in ['be']]):
        with open("be.txt", "a+") as be:
            be.write(line)
    if any([x in line for x in ['pl']]):
        with open("pl.txt", "a+") as pl:
            pl.write(line)
    if any([x in line for x in ['de']]):
        with open("de.txt", "a+") as de:
            de.write(line)
或者,您甚至可以在循环运行时保持文件打开,例如:

with open("nl.txt", "w+") as nl:
    for i, line in enumerate(data):
        # Other code here

请提供示例输入文件和代码输出。谢谢!“a+”对我有用!