给出以下目录结构:
myDir
file1.c
file2.c
subDirA
file3.c
subDirB
file4.c
我想找到带有glob的*.c
个文件,或者另一个同样有效的方法(不使用其他地方记录的os.walk
方法)。
我遇到的问题是,给定路径myDir
我无法在一行代码中递归获取所有c
个文件。
glob.glob('myDir/*.c', recursive=True)
只会产生file1
和file2
。并且
glob.glob('myDir/**/*.c', recursive=True
只会产生file3
和file4
。
有没有一种很好的方法将这两个语句合并为一个?肯定会有。
答案 0 :(得分:3)
使用pathlib
:
from pathlib import Path
Path('/to/myDir').glob('**/*.c')
至于为什么glob不适合你:
glob.glob('myDir/**/*.c', recursive=True)
^
|___ you had a lower d here?
确保您在myDir的父级内运行它,并且您的Python版本是3.5+。