2013-05-14 138 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'