這里介紹兩種方法
- 第一種深度優(yōu)先,即先遍歷當(dāng)前目錄下的第一個(gè)目錄里面的第一個(gè)目錄,以此類推,然后再逐層向上遍歷。代碼如下:
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')
運(yùn)行結(jié)果:
- 第二種廣度優(yōu)先,是先把當(dāng)前目錄下的所有文件文件夾打印出來,再分別進(jìn)每一個(gè)文件夾打印相應(yīng)的文件文件夾,再一次類推,逐層往下。代碼如下:
import os.path
rootdir = 'f:\\test' # 指明被遍歷的文件夾
def gci(rootdir):
for parent,dirnames,filenames in os.walk(rootdir): #三個(gè)參數(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)
運(yùn)行結(jié)果: