一、os.listdir()函數介紹
os.listdir(path=’.’)是Python標準庫中的一個函數,用於返回指定路徑下的所有文件和文件夾的名稱列表。如果沒有指定路徑,默認為當前工作目錄。
其返回值是一個包含文件和文件夾名稱的列表,列表中的每一項都是字元串類型。
比如,在當前工作目錄下有以下文件和子文件夾:
folder1/ folder2/ file1.txt file2.jpg
那麼使用os.listdir()函數返回的列表為:
['folder1', 'folder2', 'file1.txt', 'file2.jpg']
二、使用os.listdir()函數列出文件夾中的內容
首先,需要使用Python的os模塊導入os庫:
import os
接下來,使用os.listdir()函數獲取文件夾中的內容:
folder_path = '/path/to/folder' # 文件夾路徑 file_list = os.listdir(folder_path) # 獲取文件夾中的內容 print(file_list) # 列印文件夾中的所有文件和文件夾名稱
可以通過循環遍歷獲取到的文件列表,來對文件夾中的子文件夾或文件進行操作:
for f in file_list: if os.path.isdir(os.path.join(folder_path, f)): # 如果是文件夾 print('folder:', f) else: print('file:', f)
以上代碼可以判斷獲取到的每一項是否是文件夾,在控制台輸出不同的結果。例如,如果文件夾中有一個名為test的文件夾和一個名為readme.md的文件,那麼程序輸出的結果如下:
folder: test file: readme.md
三、使用os.walk()函數列出文件夾中的文件
os.walk()函數可以遍歷文件夾和其子文件夾中的所有文件和子文件夾,返回值是包含三個元素的元組,分別是:
- 當前文件夾路徑
- 當前文件夾中的所有文件夾名稱列表
- 當前文件夾中的所有文件名稱列表
在代碼中通過循環遍歷這個元組,就可以獲取到文件夾中的所有文件和子文件夾。
folder_path = '/path/to/folder' # 文件夾路徑 for root, dirs, files in os.walk(folder_path): for file_name in files: print(os.path.join(root, file_name)) # 列印每個文件的絕對路徑
以上代碼可以列印出輸入文件夾及其子文件夾中的所有文件路徑。如果有文件夾中有一個名為test的子文件夾,文件夾中的文件有readme.md和test.py,那麼輸出的結果如下:
/path/to/folder/readme.md /path/to/folder/test.py /path/to/folder/test/test.md /path/to/folder/test/test.py
四、os.listdir()與os.walk()函數的不同
os.listdir()函數只會遍歷指定文件夾中的所有文件和子文件夾,而不會遞歸遍歷子文件夾中的文件和文件夾。
os.walk()函數會遞歸遍歷指定文件夾及其子文件夾中的所有文件和子文件夾。
需要根據具體的需求選擇不同的函數。
五、結語
通過本文的學習,讀者可以使用Python中的os.listdir()和os.walk()函數列出文件夾中的所有文件和子文件夾名稱,以及遍歷文件夾和子文件夾中的所有文件。
使用這兩個函數可以大大提高文件夾操作的效率,讓文件管理變得更加簡單便捷。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/246017.html