如何使用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貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超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))

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超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
添加回答
舉報(bào)
0/150
提交
取消