从列表中搜索文本文件,然后输出在Python 3.x中匹配的单词

时间:2016-09-14 11:16:59

标签: python-3.x

我一直在搜索文本文件的大目录,查找与单词列表匹配的文件。如何让python输出匹配列表中的单词?

这是我到目前为止所拥有的。每次找到列表中的一个单词时,它都会写入文件名。我想将匹配的单词添加到带有文件名的行中,这样我每次都有文件名和1个匹配的单词。我该怎么做?

ngwrds= ['words'...]

for filename in os.listdir(os.getcwd()):
        with open(filename, 'r') as searchfile:
            for line in searchfile:
                if any(x in line for x in ngwrds):
                    with open("keyword.txt", 'a') as out:
                        out.write(filename + '\n')

输入是一个长文本文件,一行可能如下所示:

该公司报告的折旧为1.20美元。

如果列表中的一个搜索词是折旧,那么输出文件将如下所示:

文件名折旧

谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定out是什么,我无法从我的位置运行您的代码,但您可以尝试这样的事情:

ngwrds= ['words'...]

for filename in os.listdir(os.getcwd()):
    with open(filename, 'r') as searchfile:
        for line in searchfile:
            line = line.strip().split(" ")
            for word in line:
                if word in ngwrds:
                    out.write(filename + " " + word)

strip摆脱了line两端的空格。 split会返回line中的字词列表。