社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Matthias Arras • 4 年前 • 1376 次点击  

我有一个到一个文件的数据路径几个数据文件,比如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
 
1376 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Martijn Pieters
Reply   •   1 楼
Martijn Pieters    5 年前

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

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