2011-11-20 2 views
5

실행중인 파일을 관리해야하는 python 스크립트를 작성하고 있습니다. 나는 그것을 실행하기 전에 원본과 대상 폴더가 존재하는지 확인하고 싶습니다. 으로이 작업을 수행 할 수 있습니다. 그러나, 나는 일련의 폴더 이름을 가지고있다 runner<i>. 그 이름으로 시작하는 폴더가 있는지 확인하는 방법이 있습니까? 예를 들어특정 문자열로 시작하는 이름의 폴더가 있는지 확인하십시오.

, 경로에 /path/to/runners 가 나는 runner 적어도 하나 개의 폴더라는 이름의 경우 :

/경로 /로/러너/$ 1! 은 File2.txt
file2.txt
폴더 1
Folder2 폴더
runner1 runner35
zfolder

그런 다음 결과가 true입니다. runner1 runner35를 제거하면 틀릴 것입니다.

답변

9

는 다음을 할 수있는 : 유용한 any functiongenerator expression를 사용

import os 
if any(x.startswith('runner') for x in os.listdir('/path/to/runners')): 
    print "At least one entry begins with 'runner'" 

합니다.

+0

일을. 'glob'는 실제로 일치하는 경로 목록을 사용하고 싶을 때 유용하지만 빠른 엄격하지 않은 테스트는이 방법이 glob보다 약 2 배 빠르다는 것을 보여줍니다 –

4

마크 Longair의 대답은 꽤 괜찮, 표현의 이런 종류의 대한 (상당) 대안 글로브 사용하는 것입니다 : 이것에 대한

import glob 
if glob.glob('/path/to/runners/runner*'): 
    print "At least one entry begins with 'runner'" 
5
import glob 

if glob.glob('/path/to/runners/runner*'): 
    print 'condition satisfied' 
관련 문제