gpt4 book ai didi

python - 使用 glob 匹配以数字和下划线开头的文件

转载 作者:行者123 更新时间:2023-12-05 04:19:22 29 4
gpt4 key购买 nike

一开始我试过

folder_path.glob('[0-9]_*.json')

其中 folder_path 是一个 pathlib.Path 对象。但它仅适用于以单个数字开头的文件。

在找不到合适的匹配模式后,我使用了一个附加条件来验证下划线前面的是数字字符串

[ file_path for file_path in folder_path.glob('*_*.json') if file_path.name.split('_')[0].isnumeric() ]

但这似乎是一种仅适用于这种情况的解决方法。有没有更好的方法来使用 glob 匹配任意长度的数字?

最佳答案

使用正则表达式匹配路径:

import re

res = [file_path for file_path in folder_path.glob('[0-9]*_*.json') if re.match(r"[0-9]+_.*\.json", str(file_path))]
print(res)

输出 (示例)

[PosixPath('123_abc.json')]

Python 的 glob 模块遵循 Unix shell 使用的规则,来自 documentation :

The glob module finds all the pathnames matching a specified patternaccording to the rules used by the Unix shell, although results arereturned in arbitrary order.

可以找到 Unix shell 的规则 here这些规则不包括可变模式长度,就像您的情况一样。

关于python - 使用 glob 匹配以数字和下划线开头的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74818327/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com