glob — Unix style pathname pattern expansion
Source code: Lib/glob.py The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell, although results are returned in arbitrary order. No til...
docs.python.org
glob.glob()
glob 모듈은 파라미터에 저장 경로를 전달해, 해당 경로부터 하위 경로에 있는 파일과 디렉토리 들을 검색할 떄 사용한다.
파라미터로 전달되는 경로는 정규표현식을 사용할 수 없고 *과 ? 같은 메타문자를 이용한다.
* 사용
*은 임의의 길이의 문자열을 나타낸다.
file_path = glob.glob('dir/*.txt')
dir 폴더에 있는 txt 파일들의 이름을 file_path 리스트에 저장한다.
file_path = glob.glob('dir/*/')
dir 폴더에 있는 모든 폴더들의 이름을 file_path 리스트에 저장한다.
file_path = glob.glob('dir/*')
dir 폴더에 있는 모든 폴더들과 파일들의 이름을 file_path 리스트에 저장한다.
? 사용
?는 한 자리 길이의 문자열을 나타낸다.
file_path = glob.glob('dir/새 텍스트 문?.txt')
dir 폴더에 있는 txt 파일들 중 이름의 ?부분을 제외한 “새 텍스트 문”이 일치하는 파일들의 이름을 리스트로 저장한다.
** 사용
**은 하위 디렉토리를 검색에 포함할 때 사용한다.
file_path = glob.glob('dir/**', recursive=True)
dir를 포함한 그 하위 경로에 있는 모든 폴더와 파일의 이름을 반환한다.
file_path = glob.glob('dir/**/*.txt', recursive=True)
dir 폴더와 그 하위 경로에 있는 모든 txt 문서들을 찾아 이름을 리스트로 반환한다.
recursive=True
를 꼭 사용해 주어야 한다. recursive
의 디폴트 값은 False
이다.
예시
file_path = glob.glob('dir')
위와 같이 입력하면 현재 디렉토리만 반환된다.
file_path = glob.glob('dir/새*')
dir 안의 모든 “새”로 이름이 시작하는 파일의 이름을 반환한다.
file_path = glob.glob('dir/*스트 문서*')
dir 안의 모든 “스트 문서”가 이름의 중간에 포함된 파일의 이름을 반환한다.
file_path = glob.glob('dir/? 텍스트 문서*')
dir 안의 모든 “ 텍스트 문서”가 이름의 중간에 포함되고, 맨 앞에 임의의 한 글자만 들어가는 파일의 이름을 반환한다.