首页 > 解决方案 > Python 在几个特定/最新的目录中搜索,而不是全部使用 os.walk

问题描述

我是新来的,但已经在这里尝试学习 python 一段时间了。我现在搜索了几个小时来提出解决方案,然后搜索了一段时间,不幸的是不得不放弃。总结一下:

我需要编写代码来查找具有特定名称的文件,然后将它们合并(pdf)。如果我不使用“finaldir”扩展路径,一切都很好,但是:有很多日期类似于“finaldir”的目录,我希望我的脚本只在名为 finaldir 的目录中搜索,并且在 -x 天的范围内它。

示例:finaldir = '2020-02-04' 脚本应查找名为:'2020-02-04'、'2020-02-03'、'2020-02-02'、'2020-02-01'、 '2020-01-31'、'2020-01-30' ...等

 finaldir = '2020-02-04'     #this is example, Script get data from excel workbook

            for path, dirs, files in os.walk(r'C:\Python\testfiles\haha'+'\\'+ str(finaldir)):
                for dir in dirs:
                    if dir == 'asd' or dir == 'qwe':                      #script get 1 file from each folder

                        for file in os.listdir(os.path.join(path, dir)):
                            if regex1.match(file) or regex2.match(file):          #patterns for file 1 and 2
                                pdf_files.append(os.path.join(path, dir, file))   #appends list for pdfmerge

我是编程新手,所以任何建议都会非常感激。

感谢您的时间和帮助。

附言。文件夹名称也是创建文件夹的时间,如果它有助于获得解决方案。

标签: python

解决方案


你可以:

for dir in dirs:
    if dir != finaldir:
        continue

此外,您的 os.listdir() 可能是不必要的 - 您可以只遍历文件。

此外,如果您看到一个目录具有较深的层次结构,并且您知道您不想完全遍历,则可以将其从 dirs 中删除。


推荐阅读