如何使用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 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
Python 3.5+
pathlib.Path.globpathlib
from pathlib import Pathfor filename in Path('src').glob('**/*.c'):
print(filename)glob.globrecursive
os.walk
早期Python版本
os.walkfnmatch.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))
慕尼黑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
提交
取消
