Python在少数特定/最新目录中搜索,而不是全部使用os.walk

Python在少数特定/最新目录中搜索,而不是全部使用os.walk,python,Python,我是新来的,但已经在这里学习python一段时间了。我花了几个小时才找到解决办法,然后又花了一段时间才找到,不幸的是我不得不放弃。总结一下: 我需要编写代码来查找具有特定名称的文件,然后再合并它们(pdf)。如果我不使用“finaldir”扩展path,一切都会很好,但是:有很多dir的日期与“finaldir”类似,我希望我的脚本只在名为in finaldir的dir中搜索,并且从它开始的-x天范围内搜索 示例:finaldir='2020-02-04'脚本应在名为:'2020-02-04',

我是新来的,但已经在这里学习python一段时间了。我花了几个小时才找到解决办法,然后又花了一段时间才找到,不幸的是我不得不放弃。总结一下:

我需要编写代码来查找具有特定名称的文件,然后再合并它们(pdf)。如果我不使用“finaldir”扩展path,一切都会很好,但是:有很多dir的日期与“finaldir”类似,我希望我的脚本只在名为in finaldir的dir中搜索,并且从它开始的-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
我是编程新手,所以任何建议都会非常慎重

谢谢你的时间和帮助

另外,如果文件夹有助于获得解决方案,则文件夹名称也会在创建文件夹时显示。

您可以:

for dir in dirs:
    if dir != finaldir:
        continue
此外,您的os.listdir()可能是不必要的—您可以只对文件进行迭代


此外,如果您看到一个目录下面有一个很深的层次结构,而您知道您不想完全遍历该目录,则可以将其从目录中删除。

您好,谢谢您的回答!我觉得我把事情搞得太混乱了。我需要脚本只搜索x个最新的dir,例如,如果x=5:'2020-02-04','2020-02-03','2020-02-02','2020-02-01','2020-01-31',如果x=6:'2020-02-04','2020-02-03','2020-02-02','2020-01-31'等。'if dir='asd'或dir='qwe':“这一部分很重要,因为稍后脚本将使用另一个具有不同目录名的键,但只有在脚本找不到任何内容时才使用。