2013-05-14 137 views
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存在)?

+5

'ICO = “ICO” +文件[3:]'(但请不要使用变量名'file',它隐藏了内置)。 – 2013-05-14 13:48:21

回答

5

最简单的答案似乎是:

ico = 'ico' + file[3:] 
1

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

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

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

0

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

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