python - 在 python 中使用 glob 剪切出一系列文件
问题描述
我有一个目录,其中包含img-0001.jpg, img-0005.pg, img-0006.jpg, ... , img-xxxx.jpg
. 我需要做的是得到一个所有文件的列表0238
,从字面上看img-0238.jpg
。下一个现有文件名是img-0240.jpg
现在我使用 glob 来获取所有文件名。
list_images = glob.glob(path_images + "*.jpg")
提前致谢
编辑:
-> 最后一个文件名是img-0315.jpg
解决方案
Glob 不允许正则表达式过滤。但是您在收到所有匹配文件后立即过滤列表。这是使用的样子re
:
import re
list_images = [f for f in glob.glob(path_images + "*.jpg") \
if re.search(r'[1-9]\d{3,}|0[3-9]\d{2,}|02[4-9]\d|023[8-9]\.jpg$', f)]
带有验证文件的正则表达式以大于或等于 4 位的数字结尾0238
。
您可以使用https://regex101.com/使用正则表达式
基本上,我们检查数字是否为:
1
以任何3
数字开头0[3-9]
或以任何2
数字开头- 或以
02[4-9]
任何1
数字开头 - or 以 or 开头,
023
后跟8
or9
。
但是做简单的比较可能会更容易:
list_images = [f for f in glob.glob(path_images + "*.jpg") \
if f[-8:-4] > "0237" and f[-8:-4] < "0316"]
推荐阅读
- typescript - 如何设置连接到 redux 的通用 HOC?
- android - Firebase RT 数据库的限制不起作用
- reactjs - 打字稿如何为界面混合动态([key:type]:type)和静态类型
- c++ - 我想用 Async WriteFileEx 写下一行
- python-3.x - 如何使用 createIndex 正确改进 mongodb(pymongo) 查询?
- angular - Primeng 菜单栏项目在 Firefox 和 Edge 上快速隐藏
- r - RSelenium - 如何打开私人窗口
- python-3.x - matplotlib 不显示所有轴值
- machine-learning - 这个重采样示例会发生什么
- sql - 获取上次更改值时的日期时间的高性能查询