遍歷本地文件存儲是一項方便的技能。在本地系統內工作,os
中有多種策略os
可用于檢索目錄中的所有文件。
在本教程中,我們將使用該listdir()
函數并操縱結果以僅返回文件。
導入庫
首先,我們需要os
庫中的三種方法。
- listdir:檢索目錄的內容(目錄和文件)。
- join:將兩個組件組合成一條路徑。
- isfile:如果給定的路徑組件是一個文件,則返回true。
from os import listdir
from os.path import join, isfile
檢索目錄的內容
導入必要的方法后,該設置目錄的路徑并檢索其內容了。
from os import listdir
from os.path import join, isfile
directory_path = "/some/path"
contents = listdir(directory_path)
篩選目錄
現在我們有了目錄的所有內容,是時候過濾掉目錄了—僅保留文件。
from os import listdir
from os.path import join, isfile
directory_path = "/some/path"
contents = listdir(directory_path)
files = filter(lambda f: isfile(join(directory_path,f)),contents)
該filter()
函數有兩個參數:一個確定是否將包含該項目的函數以及要過濾的序列。我們使用lambda表達式來確定聯接的路徑和目錄內容是否為文件。重要的是要記住,這filter()
將返回一個過濾器對象,因此您應該轉換files
為列表以打印內容。
from os import listdir
from os.path import join, isfile
directory_path = "/Users/jhsu/Desktop"
contents = listdir(directory_path)
files = filter(lambda f: isfile(join(directory_path,f)),contents)
print(files) # <filter object at 0x10a5203a0>
print(list(files)) # [list of files]
翻譯自:https://medium.com/better-programming/how-to-list-every-file-in-a-directory-in-python-bd431baeb679