在Python中获取匹配字符串的关键字

在Python中获取匹配字符串的关键字,python,string,text-files,glob,Python,String,Text Files,Glob,我正在编写一个脚本,在目录中的文本文件中搜索某些单词。如果返回“True”,则它将打印找到它的文本文件。有没有办法返回/打印它实际找到的关键字?谢谢大家! from glob import glob def main(): directory = "C:\\Files Folder\\*.txt" filelist = glob(directory) keywords = ("Hello", "Goodbye", "fake") for textfile in

我正在编写一个脚本,在目录中的文本文件中搜索某些单词。如果返回“True”,则它将打印找到它的文本文件。有没有办法返回/打印它实际找到的关键字?谢谢大家!

from glob import glob

def main():
    directory = "C:\\Files Folder\\*.txt"
    filelist = glob(directory)
    keywords = ("Hello", "Goodbye", "fake")
    for textfile in filelist:
        f = open(textfile, 'r')
        for line in f:
            if any(s in line for s in keywords):
                print "Keyword Found!", f.name

if __name__ == '__main__':
    main()

不是那样的。您必须将
any()
调用展开到
for
循环中,才能找到特定的关键字。

另一种方法是使用:

for line in logfile:
    for word in line.split():
        if word in KEYWORDS:
            print word

我认为对你的代码稍加修改就足够了

from glob import glob

def main():
    directory = "C:\\Files Folder\\*.txt"
    filelist = glob(directory)
    keywords = ("Hello", "Goodbye", "fake")
    for textfile in filelist:
        f = open(textfile, 'r')
        for line in f:
            for keyword in keywords:
                if line.find(keyword)>0 :
                    print "Keyword Found!",keyword, f.name

if __name__ == '__main__':
    main()

line.split
是不必要的,它会减慢速度。谢谢,非常简单的解决方案。我在找什么!很高兴帮助你,尚卡尔。
from glob import glob

def main():
    directory = "C:\\Files Folder\\*.txt"
    filelist = glob(directory)
    keywords = ("Hello", "Goodbye", "fake")
    for textfile in filelist:
        f = open(textfile, 'r')
        for line in f:
            for keyword in keywords:
                if line.find(keyword)>0 :
                    print "Keyword Found!",keyword, f.name

if __name__ == '__main__':
    main()