2

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

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

4

3 回答 3

5

最简单的答案似乎是:

ico = 'ico' + file[3:]
于 2013-05-14T13:48:06.590 回答
1

您可以使用正则表达式来做到这一点。

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

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

于 2013-05-14T13:51:23.453 回答
0

为什么不使用正则表达式?

import re
...   
m = re.search('\d+', f.name)
print 'ico' + str(m.group(0)) + 'jpg'
于 2013-05-14T13:55:47.920 回答