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가 존재하는 경우에만)?

+5

'ico = "ico"+ file [3 :]'(그러나 변수 이름'file'을 사용하지 마십시오. –

답변

5

가장 간단한 대답은 것 같다 :

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

당신은 정규 표현식을 사용하여 전송할 수 있습니다.

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

슬라이스를 사용하는 것보다 유지 관리가 더 쉽고 직관적입니다.

0

regexp를 사용하지 않는 이유는 무엇입니까?

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