如何使用GLOB()递归查找文件?这就是我所拥有的:glob(os.path.join('src','*.c'))但是我想搜索src的子文件夹。像这样的东西会起作用的:glob(os.path.join('src','*.c'))glob(os.path.join('src','*','*.c'))glob(os.path.join('src','*','*','*.c'))glob(os.path.join('src','*','*','*','*.c'))但这显然是有限和笨重的。
5 回答
![?](http://img1.sycdn.imooc.com/533e50ed0001cc5b02000200-100-100.jpg)
猛跑小猪
TA贡献1858条经验 获得超8个赞
Python 3.5+
pathlib.Path.glob
pathlib
from pathlib import Pathfor filename in Path('src').glob('**/*.c'): print(filename)
glob.glob
recursive
os.walk
早期Python版本
os.walk
fnmatch.filter
import fnmatchimport os matches = []for root, dirnames, filenames in os.walk('src'): for filename in fnmatch.filter(filenames, '*.c'): matches.append(os.path.join(root, filename))
![?](http://img1.sycdn.imooc.com/533e4ce900010ae802000200-100-100.jpg)
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
import os, fnmatchdef find_files(directory, pattern): for root, dirs, files in os.walk(directory): for basename in files: if fnmatch.fnmatch(basename, pattern): filename = os.path.join(root, basename) yield filenamefor filename in find_files('src', '*.c'): print 'Found C source:', filename
添加回答
举报
0/150
提交
取消