Python文本在不同文件夹中的.txt文件中搜索,并打印文件和文件夹的名称

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (103)

我正在使用Python制作一个脚本,用于在选定文件夹中的一堆.txt文件中搜索所选术语(单词/情侣单词,句子),并打印出包含所选术语的.txt文件的名称。目前使用os模块正常工作:

import os

dirname = '/Users/User/Documents/test/reports'

search_terms = ['Pressure']
search_terms = [x.lower() for x in search_terms]

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

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

但我想为脚本进行扩展:不仅可以在一个文件夹(dirname)中搜索,而且可以在两个例如(dirname1,dirname2)中搜索,它们也包含.txt文件。此外,我不仅要打印搜索报告的名称,还要打印它所在目录(dirname)的名称。是否可以使用os模块来实现,或者还有其他方法可以做到这一点?

提问于
用户回答回答于

您可以像这样迭代dirnames:

import os

dirnames = ['/Users/User/Documents/test/reports','/Users/User/Documents/test/reports2']

search_terms = ['Pressure']
search_terms = [x.lower() for x in search_terms]
for dir_name in dirnames:
    for f in os.listdir(dir_name):
        with open(os.path.join(dir_name, f), "r", encoding="latin-1") as infile:
            text = infile.read()

        if all(term in text for term in search_terms):
            print("{} in {} directory".format(f, dir_name))

扫码关注云+社区

领取腾讯云代金券