You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何筛选包含连续10位数字的Windows文件路径字符串列表

实现方案

可以通过正则表达式完成该过滤需求,相比通配符适配性更强,可灵活匹配任意规则的连续字符。

1. 普通Python列表处理

核心逻辑是用正则模式\d{10}匹配任意连续10位数字,代码示例:

import re

# 你的输入路径列表,注意Windows路径建议加r前缀避免转义问题
path_list = [
    r'C:\Users\ Documents\1H_1P_42497372610000\Kirkbride A1P_42497586550009\Well History.tif',
    r'C:\Users\ Documents\TEMPORARY\WISE\30497372610000\Kirkbride _42478972610009\ Drilling\Proposals.pdf',
    r'C:\Users\ Documents\Well History\Drilling\Proposals\Cement\Pilot hole KO plug\ Test Results.txt'
]

# 定义匹配规则:连续10位数字
pattern = re.compile(r'\d{10}')
# 过滤得到符合要求的列表
filtered_list = [path for path in path_list if pattern.search(path)]

执行后filtered_list就是你需要的输出结果。

2. Pandas DataFrame处理

如果你的数据存在DataFrame中,可直接用str.contains方法过滤:

import pandas as pd

# 假设你的路径存在df的path列
df = pd.DataFrame({'path': path_list})
filtered_df = df[df['path'].str.contains(r'\d{10}', regex=True)]

方案说明

  • 之前用glob失败的原因是glob通配符仅支持基础的*、?等匹配,无法精准指定连续数字的位数
  • 手动拼接字符的方法只能匹配固定的连续字符,无法覆盖0-9所有数字的场景
  • 如果后续需要修改匹配规则,只要调整正则表达式即可:比如要匹配连续10位非空白字符,把模式改成\S{10}即可,适配非整数搜索场景。

内容的提问来源于stack exchange,提问作者cowboykevin05

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 13:45:05