如何从文件名中获取数字?

2024-07-02 10:24:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我在目录中有许多文件,根据密钥:

pic001.jpg
pic002.jpg
pic012.jpg
[...]
ico001.jpg
ico002.jpg
ico012.jpg
[...]

我想列出这些文件并创建如下结构:

for r,d,f in os.walk(directory):
    for file in f:
        if file.startswith("pic"):
            pic = file
            ico = ???
            images_list.append({
                'big': directory + '/' + pic,
                'thumb': directory + '/' + ico,
            })

如何得到“pic”文件和“ico”分配给他(只有当ico存在)?你知道吗


Tags: 文件in目录for密钥directoryfilejpg
3条回答

你可以用正则表达式来实现。你知道吗

import re
icon = 'ico%s.jpg' % re.findall(r'^pic(\d+).jpg$', file)[0]

它肯定会比使用切片更直观,更容易维护。你知道吗

为什么不使用regexp?你知道吗

import re
...   
m = re.search('\d+', f.name)
print 'ico' + str(m.group(0)) + 'jpg'

最简单的答案似乎是:

ico = 'ico' + file[3:]

相关问题 更多 >