Dav*_*rks 3 python python-3.x python-3.6
给定以下目录结构:
myDir
file1.c
file2.c
subDirA
file3.c
subDirB
file4.c
Run Code Online (Sandbox Code Playgroud)
我想*.c用 glob 或其他类似的有效方法(不使用os.walk其他地方记录的方法)查找文件。
我遇到的问题是,鉴于路径,myDir我无法c在一行代码中递归获取所有文件。
glob.glob('myDir/*.c', recursive=True)
Run Code Online (Sandbox Code Playgroud)
只产生file1和file2。和
glob.glob('myDir/**/*.c', recursive=True
Run Code Online (Sandbox Code Playgroud)
只产生file3和file4。
有没有一种很好的干净的方法将这两个语句组合成一个?看起来肯定会有。
使用pathlib:
from pathlib import Path
Path('/to/myDir').glob('**/*.c')
Run Code Online (Sandbox Code Playgroud)
至于为什么 glob 对你不起作用:
glob.glob('myDir/**/*.c', recursive=True)
^
|___ you had a lower d here?
Run Code Online (Sandbox Code Playgroud)
确保您在 myDir 的父级中运行它,并且您的 Python 版本是 3.5+。
| 归档时间: |
|
| 查看次数: |
2464 次 |
| 最近记录: |