Python wildcard 이용 파일 목록 획득 (glob 패키지 이용)

개요

Bash 등의 Shell에서 여러 개의 파일을 지칭하고자 할 때에는 아래와 같이 와일드카드를 사용한다.

1
2
3
4
> ls -al testfile*
-rw-r--r-- 1 sunb staff 0 Aug 30 14:01 testfile-abc
-rw-r--r-- 1 sunb staff 0 Aug 30 14:01 testfile1
-rw-r--r-- 1 sunb staff 0 Aug 30 14:01 testfile2

Python에서 파일 목록을 가져올 때는 os.listdir() 함수를 많이 이용하는데,
이 함수는 지정한 디렉토리 하위에 있는 모든 파일 및 디렉토리 목록을 반환한다.

위의 Bash에서 사용한 asterisk wildcard를 Python에서 파일 목록을 획득할 때 사용하려면 어떻게 해야 할까?

방안

glob 패키지를 쓰면 된다.

1
2
3
4
import glob

testfiles = glob.glob('testfile*')
print(testfiles)

결과는 다음과 같다.

1
['testfile-abc', 'testfile1', 'testfile2']