TIL/PYTHON

[PYTHON] glob.glob() 사용법

yeoney 2023. 7. 19. 00:07
반응형

https://docs.python.org/ko/3/library/glob.html

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

 
1. glob.glob(pathname, *, root_dir=None, dir_fd=None, recursive=False, include_hidden=False)
pathname 과 일치하는 비어 있을 수 있는 경로 이름 목록을 반환합니다 . 경로 지정을 포함하는 문자열이어야 합니다. 경로 이름은/usr/src/Python-1.5/Makefile 절대( 와 같은 ) 또는 상대( 와 같은 ) 일 수 ../../Tools/*/*.gif있으며 셸 스타일 와일드카드를 포함할 수 있습니다. 깨진 심볼릭 링크는 결과에 포함됩니다(쉘에서와 같이). 결과 정렬 여부는 파일 시스템에 따라 다릅니다. 이 함수를 호출하는 동안 조건을 만족하는 파일이 제거되거나 추가되면 해당 파일의 경로 이름을 포함할지 여부는 지정되지 않습니다.
2. glob.iglob(pathname, *, root_dir=None, dir_fd=None, recursive=False, include_hidden=False)
실제로 동시에 저장하지 않고 glob()과 같은 값을 산출하는 이터레이터를 반환합니다.

pathname, recursive를 인자로 감사 이벤트(auditing event) glob.glob을 발생시킵니다.

3. glob.escape(pathname)
모든 특수 문자('?', '*'  '[')를 이스케이프 처리합니다. 이것은 특수 문자가 들어있을 수 있는 임의의 리터럴 문자열을 일치시키려는 경우에 유용합니다. 드라이브/UNC 셰어 포인트의 특수 문자는 이스케이프 되지 않습니다, 예를 들어, 윈도우에서 escape('//?/c:/Quo vadis?.txt') '//?/c:/Quo vadis[?].txt'를 반환합니다.
 
예시
디렉터리

sub
	1.gif 
    2.txt 
    card.gif
    3.txt
>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
>>> glob.glob('**/*.txt', recursive=True)
['2.txt', 'sub/3.txt']
>>> glob.glob('./**/', recursive=True)
['./', './sub/']

 + 디렉터리에 .으로 시작하는 파일이 있으면, 기본적으로 일치하지 않는다.
예를 들어, card.gif  .card.gif를 포함하는 디렉터리에서는

>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.c*')
['.card.gif']
반응형