python:利用遞歸遍歷文件夾所有文件(包括子文件夾里的文件)


廢話不說,先上代碼:

 1 import os
 2 
 3 
 4 def show_files(path, all_files):
 5     # 首先遍歷當前目錄所有文件及文件夾
 6     file_list = os.listdir(path)
 7     # 准備循環判斷每個元素是否是文件夾還是文件,是文件的話,把名稱傳入list,是文件夾的話,遞歸
 8     for file in file_list:
 9         # 利用os.path.join()方法取得路徑全名,並存入cur_path變量,否則每次只能遍歷一層目錄
10         cur_path = os.path.join(path, file)
11         # 判斷是否是文件夾
12         if os.path.isdir(cur_path):
13             show_files(cur_path, all_files)
14         else:
15             all_files.append(file)
16 
17     return all_files
18 
19 
20 # 傳入空的list接收文件名
21 contents = show_files("e:\\python", [])
22 # 循環打印show_files函數返回的文件名列表
23 for content in contents:
24     print(content)

剛開始寫了半天,只能遍歷當前目錄,要不就是遞歸超過最大深度,最后才知道,還有一個os.path.join()方法,不調用這個方法的話,每次遞歸傳進去的路徑名稱只有一個文件目錄名,而程序執行的時候是以程序文件所在目錄為參考的相對目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM