第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用GLOB()遞歸查找文件?

如何使用GLOB()遞歸查找文件?

搖曳的薔薇 2019-06-15 18:29:02
如何使用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+

既然您是在一條新的python上,您應(yīng)該使用pathlib.Path.globpathlib模塊。

from pathlib import Pathfor filename in Path('src').glob('**/*.c'):
    print(filename)

如果您不想使用路徑庫,只需使用glob.glob,但別忘了通過recursive關(guān)鍵字參數(shù)

對于匹配以點(diǎn)(.)開頭的文件;類似于當(dāng)前目錄中的文件或基于Unix的系統(tǒng)上的隱藏文件的情況,請使用os.walk解決方案如下。

早期Python版本

對于較早的Python版本,請使用os.walk遞歸地遍歷目錄和fnmatch.filter要與簡單表達(dá)式匹配:

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))


查看完整回答
反對 回復(fù) 2019-06-15
?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個贊

類似于其他解決方案,但是使用fnmedi.fnMatch而不是GLOB,因?yàn)閛s.walk已經(jīng)列出了文件名:

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

此外,使用生成器將分配給您處理找到的每個文件,而不是查找所有文件。然后處理它們。


查看完整回答
反對 回復(fù) 2019-06-15
  • 5 回答
  • 0 關(guān)注
  • 1623 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號