在Python中列出目錄中的每個文件

遍歷本地文件存儲是一項方便的技能。在本地系統(tǒng)內(nèi)工作,os中有多種策略os可用于檢索目錄中的所有文件。

在本教程中,我們將使用該listdir()函數(shù)并操縱結(jié)果以僅返回文件。


導(dǎo)入庫

首先,我們需要os庫中的三種方法。

  • listdir:檢索目錄的內(nèi)容(目錄和文件)。
  • join:將兩個組件組合成一條路徑。
  • isfile:如果給定的路徑組件是一個文件,則返回true。
from os import listdir
from os.path import join, isfile

檢索目錄的內(nèi)容

導(dǎo)入必要的方法后,該設(shè)置目錄的路徑并檢索其內(nèi)容了。

from os import listdir
from os.path import join, isfile
directory_path = "/some/path"
contents = listdir(directory_path)

篩選目錄

現(xiàn)在我們有了目錄的所有內(nèi)容,是時候過濾掉目錄了—僅保留文件。

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()函數(shù)有兩個參數(shù):一個確定是否將包含該項目的函數(shù)以及要過濾的序列。我們使用lambda表達式來確定聯(lián)接的路徑和目錄內(nèi)容是否為文件。重要的是要記住,這filter()將返回一個過濾器對象,因此您應(yīng)該轉(zhuǎn)換files為列表以打印內(nèi)容。

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容