2013-05-14 3 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, 
      }) 

Как получить «ПИК» файл и «ICO "присвоенный ему (только если ico существует)?

+5

'ico =" ico "+ file [3:]' (но, пожалуйста, не используйте имя переменной 'файл', оно тени встроенного). –

ответ

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' 
Смежные вопросы