Python遍歷目錄樹中的函數(shù)調(diào)用的實際操作步驟簡介
現(xiàn)在關(guān)于Python遍歷目錄樹的相關(guān)實際應(yīng)用操作方案的介紹相對而言還算是比較少的,所以我們今天把Python遍歷目錄樹的相關(guān)內(nèi)容以及在計算機語言的實際應(yīng)用方案有所了解,以下是相關(guān)內(nèi)容的介紹。
Python遍歷目錄樹下面的函數(shù)調(diào)用
- os.path.walk(root, myfunc, arg)
將遍歷root目錄樹;然后,對每個目錄名dirname分別調(diào)用myfunc(arg, dirname, files)即可,這里參數(shù)files是dir中的文件名列表(可通過調(diào)用os.listdir(dirname)來獲得);arg是用戶從調(diào)用代碼中傳遞來的參數(shù)。對于UNIX操作系統(tǒng)用戶來說,Python語言中跨平臺的os.path.walk相當(dāng)于Unix命令find。
在解釋os.path.walk的用法的時候,人們常使用寫出主目錄中所有子目錄內(nèi)的文件的名稱為例進(jìn)行說明。當(dāng)然,我們也可以在一個交互式的Python命令行中使用下列代碼段來體會os.path.walk的使用:
- def ls(arg, dirname, files):
- print dirname, ’has the files’, files
- os.path.walk(os.environ[’HOME’], ls, None)
本例中關(guān)于Python遍歷目錄樹,參數(shù)arg并非必需,所以在os.path.walk調(diào)用中讓其取值為None即可。為了列出主目錄中所有大于1Mb的文件,可以使用下面的代碼:
- def checksize1(arg, dirname, files):
- for file in files:
- filepath = os.path.join(dirname, file)
- if os.path.isfile(filepath):
- size = os.path.getsize(filepath)
- if size > 1000000:
- sizesize_in_Mb = size/1000000.0
- arg.append((size_in_Mb, filename))
- bigfiles = []
- root = os.environ[’HOME’]
- os.path.walk(root, checksize1, bigfiles)
- for size, name in bigfiles:
- print name, ’大小為’, size, ’Mb’
現(xiàn)在,我們使用arg來建立一個數(shù)據(jù)結(jié)構(gòu),這里是一個2元組構(gòu)成的列表,其中每個2元組存放文件的尺寸(以MB為單位)和完整的文件路徑。如果用于所有目錄的函數(shù)調(diào)用中都要更改arg的話,那么arg必須是一個可變的數(shù)據(jù)結(jié)構(gòu),即允許適當(dāng)?shù)剡M(jìn)行修改。以上的內(nèi)容就是對Python遍歷目錄樹的實際應(yīng)用方案的具體介紹。
【編輯推薦】
- Python對象以C語言實現(xiàn)其相關(guān)功能的介紹
- Python VIM 注釋掉代碼的具體方案的描述
- Python手工加載Django的實際操作的四部分詳解
- Python安裝中對配置環(huán)境變量實際操作的方法
- Python模塊功能在實際應(yīng)用方案中的相關(guān)功能的介紹