2014-11-29 3 views
1

나는 다음과 같은 기능을 가지고 : 자바 배포를 실행 os.sys를 사용는 파일 이름을 추측

unpack_binaryfunction('third-party/jdk-6u29-linux-i586.bin' , ('/home/user/%s/third-party' % installdir), 'jdk1.6.0_29') 

합니다. 함수와 결합 된 선 (중요하지 않은 것은 단지 일부 리눅스 문장을 호출한다)은 완벽하게 작동한다.

그러나 '제 3 자'폴더에서 해당 jdk 버전을 지정하는 경우에만 작동합니다. 따라서 '제 3 자'폴더에있는 파일을보고 'jdk'로 시작하고 나머지 파일 이름을 채우는 코드를 찾아야합니다.

전적으로 붙어 있습니다. 파일 찾기 등을 도울 수있는 함수 나 라이브러리가 있습니까?

명확히하려면 : jdk-6u29-linux-i586.bin 전체를 포함하지 말고 제 3 자 폴더에있을 jdk-xxxx ...를 사용하는 코드가 필요합니다.

+2

'glob' 모듈을보십시오. –

+0

완벽하고 감사합니다. :) – Seraphim

답변

1

이 모듈은 glob 모듈을 사용하여 쉽게 수행 할 수 있으며 버전을 추출하기 위해 문자열 구문 분석을 약간 수행 할 수 있습니다.

import glob 
import os.path 

for path in glob.glob('third-party/jdk-*'): 
    parent, name = os.path.split(path) # "third-party", "jdk-6u29-linux-i586.bin" 
    version, update = name.split('-')[1].split('u') # ("6", "29") 
    unpack_binaryfunction(path, ('/home/user/%s/third-party' % installdir), 'jdk1.{}.0_{}'.format(version, update))