【问题标题】:Searching for the files which have search terms in python在python中搜索具有搜索词的文件
【发布时间】:2018-06-04 12:56:19
【问题描述】:

尝试使用该方法在文件夹中的一堆文本文档中查找搜索词:

dirname = '/Users/user/Documents/dat/'
search_terms = ['kek']

for f in os.listdir(dirname):

    text = open(os.path.join(dirname,f)).readlines() 

    if any(term in text for term in search_terms):

        print (f)

由于某种原因,不知道为什么,它给了我目录中第一个文件的名称,不管它是否包含这个搜索词。应该做些什么不同的事情才能正确完成这项任务?

谢谢!

【问题讨论】:

  • 试试text = file.read() if "kek" in text 然后打印你需要打印的东西
  • 你需要像for line in text: found = any(term in line for term in search_terms)这样的东西

标签: python parsing search text


【解决方案1】:

如果我理解正确,你需要。

dirname = '/Users/user/Documents/dat/'
search_terms = ['kek']

for f in os.listdir(dirname):
    with open(os.path.join(dirname,f), "r") as infile:
        text =  infile.read()

    if any(term in text for term in search_terms):
        print (f)

【讨论】:

    【解决方案2】:

    因为当您在文件中找到正确的术语时,您不是在打印该术语,而是在打印文件名 f。

    试试:

        for line in text:
            if any(term in line for term in search_terms):
                print(line)
    

    另外,完成后不要忘记关闭文件,或使用with

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多