Py学习  »  Python

如何正确使用python中的pathlib排除path目录中的文件?

Matthias Arras • 5 年前 • 2276 次点击  

我有一个到一个文件的数据路径几个数据文件,比如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 包括潜在遮罩的物体。现在我想要一个列表,给我目录内容,但不包括任何文件包含掩码。我有 tried this approach 使用花哨的正则表达式 *![mask]* 但我没能成功。

使用,

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

我能得到想要的结果,但如果我再改成 路径 元素。有没有一种直接的方法从目录列表中排除?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44330
 
2276 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Martijn Pieters
Reply   •   1 楼
Martijn Pieters    6 年前

这里不需要将任何内容转换为字符串,因为 Path 对象具有可用于筛选的有用属性。看看 .name .stem 属性;这些属性允许您在基本文件名(其中 是没有扩展名的基名称):

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