在python中以递归方式清理文件的方式为glob

问题描述 投票:1回答:1

给定以下目录结构:

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

是否有一种很好的清洁方式将这两个语句合并为一个?肯定会有。

python python-3.x python-3.6
1个回答
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+。

© www.soinside.com 2019 - 2024. All rights reserved.