這里介紹兩種方法
- 第一種深度優(yōu)先彤敛,即先遍歷當(dāng)前目錄下的第一個目錄里面的第一個目錄与帆,以此類推,然后再逐層向上遍歷墨榄。代碼如下:
import os
def gci(filepath):
#遍歷filepath下所有文件玄糟,包括子目錄
files = os.listdir(filepath)
for fi in files:
fi_d = os.path.join(filepath,fi)
if os.path.isdir(fi_d):
print(os.path.join(filepath, fi_d))
gci(fi_d)
else:
print(os.path.join(filepath,fi_d))#遞歸遍歷/root目錄下所有文件
gci('f:\\test')
運行結(jié)果:
- 第二種廣度優(yōu)先,是先把當(dāng)前目錄下的所有文件文件夾打印出來袄秩,再分別進每一個文件夾打印相應(yīng)的文件文件夾阵翎,再一次類推,逐層往下之剧。代碼如下:
import os.path
rootdir = 'f:\\test' # 指明被遍歷的文件夾
def gci(rootdir):
for parent,dirnames,filenames in os.walk(rootdir): #三個參數(shù):分別返回1.父目錄 2.所有文件夾名字(不含路徑) 3.所有文件名字
for dirname in dirnames: #輸出文件夾信息
#print("parent is:" + parent)
#print("dirname is:" + dirname)
#print("the full name of the file is:" + os.path.join(parent, dirname)) # 輸出文件夾路徑信息
print(os.path.join(parent, dirname)) # 輸出文件夾路徑信息
for filename in filenames: # 輸出文件信息
#print("parent is:" + parent)
#print("filename is:" + filename)
#print("the full name of the file is:" + os.path.join(parent, filename)) # 輸出文件路徑信息
print(os.path.join(parent, filename)) # 輸出文件路徑信息
gci(rootdir)
運行結(jié)果: