在Python中获取匹配字符串的关键字
我正在编写一个脚本,在目录中的文本文件中搜索某些单词。如果返回“True”,则它将打印找到它的文本文件。有没有办法返回/打印它实际找到的关键字?谢谢大家!在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
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()