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