gpt4 book ai didi

python - 如何从文件夹中选择带有编号扩展名的文件?

转载 作者:行者123 更新时间:2023-12-01 01:15:37 25 4
gpt4 key购买 nike

我正在尝试为一个项目构建自己的数据集。因此,我需要选择从另一个程序导出并带有编号扩展名的文件:

exported_file_1_aaa.001
exported_file_2_aaa.002
exported_file_3_aaa.003
...
exported_file_5_zzz.925
...and so on.

我知道如何选择具有特定扩展名的文件,例如从文件夹中获取“.txt”并将其附加到列表或字典中。有没有办法用“.nnn”解决这个问题

ext = '.nnn'
all_files = [i for i in os.listdir(dir) if os.path.splitext(i)[1] == ext]
for f in all_files:
...

最佳答案

您可以混合使用 shell 通配符 (glob) 和正则表达式 (re) 的功能。

使用glob可以获取以数字结尾的文件,这样我们就可以得到有限数量的文件供re进行最终检查:

glob.iglob('exported_file_*.*[0-9]')

然后我们可以使用正则表达式模式精确匹配文件:

\.\d+$

这将匹配最后一个.之后以数字结尾的文件名。

放在一起:

import glob
import re
[file for file in glob.iglob('exported_file_*.*[0-9]') if re.search(r'\.\d+$', file)]
<小时/>

Shell 通配符不如 re 灵活,否则我们可以单独使用 glob 来完成。

此外,如果您确定所有文件都以一定数量的数字结尾,则单独使用 glob 即可,例如对于最后一个 . 之后以 3 位数字结尾的文件:

glob.iglob('exported_file_*.[0-9][0-9][0-9]')

关于python - 如何从文件夹中选择带有编号扩展名的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54381624/

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