簡體   English   中英

如何使用python中的pathlib排除路徑目錄中的文件?

[英]How to exclude files in path directory using pathlib in python the proper way?

我有一個指向幾個數據文件的數據路徑,讓我們說data01.txt,data02.txt等。 在處理期間,用戶將提供數據的掩碼文件(也可能通過外部工具)。 掩碼文件將包含字符串“ mask”,例如data01-mask.txt。

from pathlib import Path
p = Path(C:\Windowns\test\data01.txt)
dircontent = list(p.parent.glob('*'))

給我所有Path的文件列表,包括潛在的掩碼。 現在,我想要一個列表,該列表為我提供目錄內容,但不包括任何包含掩碼的文件。 我已經嘗試過使用花哨的正則表達式*![mask]* 這種方法 ,但是我無法使用它。

使用,

dircontentstr = [str(elem) for elem in x]
filtereddir = [elem.find('mask') for elem in dircontentstr if elem.find('mask')==-1]

我可以得到理想的結果,但是再轉換回Path元素似乎很愚蠢。 是否有直接方法從目錄列表中排除?

此處無需將任何內容轉換為字符串,因為Path對象具有有用的屬性,可用於對其進行過濾。 看一下.name.stem屬性; 這些使您可以過濾基本文件名上的路徑對象( .stem是不帶擴展名的基本名稱):

dircontent = [path for path in p.parent.glob('*') if 'mask' not in path.stem]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM