在Python中递归递归的文件的清洁方式



给定以下目录结构:

myDir
   file1.c
   file2.c
   subDirA
      file3.c
   subDirB
      file4.c

我想查找带有Glob的*.c文件,或其他类似高效的方法(不使用其他地方记录的os.walk方法(。

我遇到的问题是,鉴于路径myDir,我无法在一行代码中递归中获得所有c文件。

glob.glob('myDir/*.c', recursive=True) 

仅产生file1file2。和

glob.glob('myDir/**/*.c', recursive=True

仅产生file3file4

是否有一种很好的干净方法将这两个陈述组合成一个?似乎会有。

使用 pathlib

from pathlib import Path
Path('/to/myDir').glob('**/*.c')

至于为什么Glob不适合您:

glob.glob('myDir/**/*.c', recursive=True)
             ^
             |___ you had a lower d here
                  https://stackoverflow.com/revisions/49022163/1

确保您是在MyDir的父母中运行的,并且您的Python版本为3.5 。

最新更新