遍歷乙個目錄下所有的資料夾和檔案是非常有用的事情,在python中os模組提供了非常簡單易行的遍歷方法os.walk(path)。
另外一定要了解的一點是,os.walk(path)遍歷有點「廣度優先」的意思,也就是說在上乙個os.walk沒執行完之前,再執行os.walk會等待。
先看**,注意showpathinfo函式是對乙個目錄進行處理,對該目錄下的資料夾同樣會遞迴呼叫showpathinfo,注意print("*****")
輸出的時機表明了os.walk等待執行的特點。
#目錄的遍歷
#匯入os模組
import os
#獲取目錄資訊
print
("請輸入目錄資訊"
)dir
=input()
while os.path.exists(
dir)
==false
:print
("目錄不存在,請重新輸入"
)dir
=input()
#對乙個目錄的處理函式
defshowpathinfo
(path)
:print
("*****"
)for folder,subfolders,files in os.walk(path)
:print
("\n==當前遍歷目錄:"
+folder)
forfile
in files:
print
("[檔案]:"
+file
)for subfolder in subfolders:
print
("[資料夾]:"
+subfolder)
showpathinfo(subfolder)
#主程式
print
("**********遍歷開始"
)showpathinfo(
dir)
print
("**********遍歷結束"
)
測試,根據****輸出時機,看os.walk執行方式
請輸入目錄資訊
c:\users
====
====
==遍歷開始
****
*==當前遍歷目錄:c:\users
[檔案]:desktop.ini
[資料夾]:administrator
****
*[資料夾]:all users
*******
***[資料夾]:default
****
*[資料夾]:default user
*******
***[資料夾]:public
****
*==當前遍歷目錄:c:\users\administrator
[檔案]:.deliverycenter.installs
[檔案]:.packettracer
[檔案]:a.py
[檔案]:mm.cfg
[檔案]:ntuser.dat
[檔案]:ntuser.dat.log1
[檔案]:ntuser.dat.log2
[檔案]:ntuser.dat
.tm.blf
[檔案]:ntuser.dat
.tmcontainer00000000000000000001.regtrans-ms
[檔案]:ntuser.dat
.tmcontainer00000000000000000002.regtrans-ms
[檔案]:ntuser.ini
[檔案]:ntuser.pol
[檔案]:pdf.exe
[檔案]:webpageicons.db
[資料夾]:.android
****
*[資料夾]:.eclipse
****
*[資料夾]:.idlerc
****
*[資料夾]:.intellijidea2016.3**
***[資料夾]:.m2
****
*[資料夾]:.p2
****
*[資料夾]:.virtualbox
*******
*******
*[資料夾]:cisco packet tracer 6.0
Python學習筆記 21
tips 沒有必要的話,多重繼承盡量避免使用 class animal def run self print 動物會跑。def sleep self print 動物睡覺。當前有乙個類,能實現大部分功能,但實現不了全部功能 建立乙個新類讓它繼承這個類的屬性和方法 在定義類時,可以在括號內指定當前類的...
Python學習筆記(2) 遍歷目錄結構並列印
有時候想看一下專案中的目錄和檔案結構,用python實現 主要用到這幾個函式 import os os.getcwd 獲取當前執行程式的目錄 os.listdir path 取得path下的檔案和目錄,返回值list型別 os.path.isdir path 判斷path路徑是否為目錄 os.pat...
目錄 Python學習筆記
1 python學習筆記 day1 概述及安裝 2 python學習筆記 day2 pycharm的基本使用 3 python學習筆記 day3 資料型別及運算子 4 python學習筆記 day4 流程控制 5 python學習筆記 day5 檔案操作 6 python學習筆記 day6 函式 7...