首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在不同文件夹中的.txt文件中进行Python文本搜索,并打印文件和文件夹的名称

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

Stack Overflow用户
提问于 2018-07-16 05:37:39
回答 1查看 99关注 0票数 0

我正在用Python语言编写一个脚本,用于在选定文件夹中的一堆.txt文件中搜索选定的术语(单词/组合单词、句子),并打印出包含选定术语的.txt文件的名称。目前使用os模块工作得很好:

代码语言:javascript
复制
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)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-16 05:40:52

你可以像这样遍历dirname:

代码语言:javascript
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51352443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档