您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python中怎么調用遍歷目錄樹的函數,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Python遍歷目錄樹下面的函數調用
os.path.walk(root, myfunc, arg)
將遍歷root目錄樹;然后,對每個目錄名dirname分別調用myfunc(arg, dirname, files)即可,這里參數files是dir中的文件名列表(可通過調用os.listdir(dirname)來獲得);arg是用戶從調用代碼中傳遞來的參數。對于UNIX操作系統用戶來說,Python語言中跨平臺的os.path.walk相當于Unix命令find。
在解釋os.path.walk的用法的時候,人們常使用寫出主目錄中所有子目錄內的文件的名稱為例進行說明。當然,我們也可以在一個交互式的Python命令行中使用下列代碼段來體會os.path.walk的使用:
def ls(arg, dirname, files): print dirname, ’has the files’, files os.path.walk(os.environ[’HOME’], ls, None)
本例中關于Python遍歷目錄樹,參數arg并非必需,所以在os.path.walk調用中讓其取值為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’
現在,我們使用arg來建立一個數據結構,這里是一個2元組構成的列表,其中每個2元組存放文件的尺寸(以MB為單位)和完整的文件路徑。如果用于所有目錄的函數調用中都要更改arg的話,那么arg必須是一個可變的數據結構,即允許適當地進行修改。
上述內容就是Python中怎么調用遍歷目錄樹的函數,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。