一、基礎操作
import os #獲取當前目錄 current_path = os.getcwd() print("當前目錄為:", current_path) #獲取目錄下所有文件和文件夾 all_files = os.listdir(current_path) for file in all_files: print(file)
Python內置了os模塊,可以通過該模塊實現對操作系統的基本操作,包括訪問文件和目錄等。在這個例子中,我們首先通過os.getcwd()方法獲取當前目錄,並利用os.listdir()方法獲取當前目錄下所有的文件和文件夾,然後使用for循環逐個打印出來。
二、遍歷子目錄
import os #遍歷當前目錄及其子目錄下的所有文件和文件夾 def list_files(start_path): for root, dirs, files in os.walk(start_path): for file in files: print(os.path.join(root, file)) list_files(os.getcwd())
如果需要遍歷指定目錄下的所有子目錄,上述代碼需要做一些修改。這裡通過定義一個函數list_files來實現目錄遍歷。os.walk()方法可以很方便地實現遍歷目錄。os.walk()返回值是一個三元turple,分別代表當前遍歷的目錄,當前目錄下的所有子目錄,以及當前目錄下的所有文件。這裡通過for循環嵌套打印出所有文件的路徑。
三、根據文件類型過濾
import os #根據文件類型過濾 def list_files(start_path, extension): for root, dirs, files in os.walk(start_path): for file in files: if file.endswith(extension): print(os.path.join(root, file)) list_files(os.getcwd(), '.txt')
通過在os.walk()函數返回值中加入一個過濾條件,可以篩選出我們所需要的文件。這裡通過定義extension來作為文件類型參數,然後在日誌中增加一個條件判斷if file.endswith(extension),來篩選.txt文件。
四、多路徑遍歷
import os #多路徑遍歷 def list_files(paths, extension): for path in paths: for root, dirs, files in os.walk(path): for file in files: if file.endswith(extension): print(os.path.join(root, file)) list_files([r'C:\temp', r'D:\documents'], '.txt')
上述代碼中我們只遍歷了一個目錄,如果需要多路徑遍歷的話,只需要將目錄列表作為參數傳入即可。這裡把所有路徑放在一個list中,遍歷其中所有目錄下的所有.txt文件。
原創文章,作者:NHKL,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/144537.html