我一直在搜索文本文件的大目录,查找与单词列表匹配的文件。如何让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美元。
如果列表中的一个搜索词是折旧,那么输出文件将如下所示:
文件名折旧
谢谢。
答案 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
中的字词列表。