一、os模塊獲取文件列表
os模塊是Python內置的一種常用模塊,可以方便地進行操作系統相關的操作。在Python中,可以使用os模塊的listdir()函數獲取指定目錄下的文件列表。listdir()函數接收一個字符串類型的路徑參數,返回該路徑下所有文件和目錄的列表,並且包括隱藏文件和目錄。
import os path = "/path/to/directory" files = os.listdir(path) for file in files: print(file)
上述代碼中,我們首先導入os模塊,然後指定路徑,使用listdir()函數獲取該路徑下所有文件和目錄的列表,最後遍歷列表並打印出每個文件的名稱。
二、glob模塊獲取文件列表
Python的glob模塊提供了一個方便的方式來匹配指定模式下的文件列表。glob()函數接收一個字符串類型的路徑參數,使用Unix-shell風格的模式來匹配文件和目錄。該函數返回一個包含所有匹配的路徑的列表。
import glob path = "/path/to/directory/*.txt" files = glob.glob(path) for file in files: print(file)
上述代碼中,我們首先導入glob模塊,然後指定路徑,使用glob()函數獲取該路徑下所有txt文件的列表,最後遍歷列表並打印出每個文件的路徑。
三、os.walk()獲取文件列表
os.walk()函數可以遍歷一個目錄下所有子目錄和文件,並可自定義過濾格式。這個函數返回一個三元組,包含當前路徑、該路徑下所有子目錄的名稱列表和該路徑下所有文件的名稱列表。
import os path = "/path/to/directory" for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: if filename.endswith(".txt"): print(os.path.join(dirpath, filename))
上述代碼中,我們首先指定路徑,然後使用os.walk()函數遍歷該路徑下所有子目錄和文件。對於每個文件名稱,檢查其是否以”.txt”文件格式結尾。如果是,使用os.path.join()拼接路徑和文件名,最後打印文件路徑。
四、使用os.scandir()獲取文件列表
os.scandir()函數比os.listdir()更加高效,並且返回的是目錄項(entry)的迭代器。目錄項是包含有關文件的元數據的命名元組。這個函數可以快速讀取文件信息,例如文件大小、修改時間等。
import os path = "/path/to/directory" with os.scandir(path) as entries: for entry in entries: if entry.is_file() and entry.name.endswith(".txt"): print(entry.path)
上述代碼中,我們使用os.scandir()函數遍歷指定目錄下所有文件的元數據信息。對於每個文件,檢查其是否以”.txt”文件格式結尾,並打印其路徑。
五、總結
以上介紹了4種Python獲取目錄下文件列表的方法,分別使用了os模塊的listdir()函數、glob模塊、os.walk()函數和os.scandir()函數。每種方法都有其優缺點,可以根據自己的需求進行選擇使用。需要注意的是,獲取文件列表時應該注意文件格式和路徑的問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279995.html