轉載於:http://blog.csdn.net/bagboy_taobao_com/article/details/8938126python
os.walk(top, topdown=True, onerror=None, followlinks=False) ide
能夠獲得一個三元tupple(dirpath, dirnames, filenames), url
第一個爲起始路徑,第二個爲起始路徑下的文件夾,第三個是起始路徑下的文件。spa
dirpath 是一個string,表明目錄的路徑,.net
dirnames 是一個list,包含了dirpath下全部子目錄的名字。orm
filenames 是一個list,包含了非目錄文件的名字。blog
這些名字不包含路徑信息,若是須要獲得全路徑,須要使用os.path.join(dirpath, name).遞歸
經過for循環自動完成遞歸枚舉ip
例如:pdo
F:\aaa 目錄是這樣的文件目錄結構
F:\aaa
|--------1.txt
|--------2.txt
|--------3.txt
|--------4
|-------5.txt
|-------6.txt
|-------7.txt
[python] view plaincopy
#!/usr/bin/env python
# 2.py
# use UTF-8
# Python 3.3.0
# os.walk()的使用
import os
# 枚舉dirPath目錄下的全部文件
def main():
#begin
fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目錄下
for root, dirs, files in os.walk(fileDir):
#begin
print(root)
print(dirs)
print(files)
#end
os.system("pause")
#end
if __name__ == '__main__':
#begin
main()
#end
# 輸出
# F:\aaa
# ['4']
# ['1.txt', '2.txt', '3.txt']
# F:\aaa\4
# []
# ['5.txt', '6.txt', '7.txt']
你也能夠這樣
[python] view plaincopy
#!/usr/bin/env python
# 3.py
# use UTF-8
# Python 3.3.0
# os.walk()的使用
import os
# 枚舉dirPath目錄下的全部文件
def main():
#begin
fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目錄下
for a in os.walk(fileDir):
#begin
print(a[0])
print(a[1])
print(a[2])
#end
os.system("pause")
#end
if __name__ == '__main__':
#begin
main()
#end
# 輸出
# F:\aaa
# ['4']
# ['1.txt', '2.txt', '3.txt']
# F:\aaa\4
# []
# ['5.txt', '6.txt', '7.txt']
經過for循環便可完成目錄的遞歸.
你還能夠這樣
[python] view plaincopy
#!/usr/bin/env python
# 2.py
# use UTF-8
# Python 3.3.0
# os.walk()的使用
import os
# 枚舉dirPath目錄下的全部文件
def main():
#begin
fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目錄下
for root, dirs, files in os.walk(fileDir):
#begin
for dir in dirs:
#begin
print(os.path.join(root, dir))
#end
for file in files:
#begin
print(os.path.join(root, file))
#end
#end
os.system("pause")
#end
if __name__ == '__main__':
#begin
main()
#end
# 輸出
# F:\aaa\4
# F:\aaa\1.txt
# F:\aaa\2.txt
# F:\aaa\3.txt
# F:\aaa\4\5.txt
# F:\aaa\4\6.txt
# F:\aaa\4\7.txt