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

时间:2013-05-14 13:45:25

标签: python python-2.7

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

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存在时)?

3 个答案:

答案 0 :(得分:5)

最简单的答案似乎是:

ico = 'ico' + file[3:]

答案 1 :(得分:1)

您可以使用正则表达式来完成。

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

与使用切片相比,它肯定会更直观,更易于维护。

答案 2 :(得分:0)

为什么不使用regexp?

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