파이썬/기본

[파이썬] glob

caramel-bottle 2023. 10. 9.

glob

glob은 파일 및 디렉토리를 패턴을 사용하여 검색하는 데 사용된다.

 

glob 파일 찾기, 현재 경로

import glob

# 현재 디렉토리에서 확장자가 .txt인 파일 찾기
txt_files = glob.glob("*.txt")
print(txt_files)

glob 모듈의 glob 함수를 사용하여 파일을 찾는다. 메서드 인자로는 경로에 대한 문자열이 입력된다. 경로는 절대경로와 상대경로 모두 사용이 가능하다. 위의 경우 상대경로로, 현재 디렉토리에 있는 '.txt' 로 끝나는 파일을 반환하게 된다. 


glob 파일 찾기, 하위 경로

# 하위 경로의 txt파일 찾기
for filename in glob.glob('**/*.txt'): # '**' 하위의 어떤 경로든 상관없다.
    print(filename)

현재 디렉토리의 파일을 찾을 수 있듯이, '**/' 를 포함하면 하위 디렉토리도 탐색할 수 있다.

현재 디렉토리에서 모든 하위 디렉토리를 탐색하기 때문에 특정 하위 디렉토리만 탐색하기 위해선 경로를 특정하는 것이 좋다.

 

# 하위 경로의 txt파일 찾기
for filename in glob.glob('**/**/*.txt'): # '**' 하위의 어떤 경로든 상관없다.
    print(filename)

마찬가지로 하위 디렉토리 그 다음 하위 디렉토리 까지도 탐색이 가능하다.


glob 파일 찾기, (현재 + 하위) 경로

# 현재와 하위 경로의 txt파일 모두 찾기
for filename in glob.glob('**/*.txt', recursive=True): # '**' 하위의 어떤 경로든 상관없다.
    print(filename)

만약 현재 경로와 하위 경로를 모두 탐색하고 싶다면 recursive 옵션을 True로 설정하면 된다.


glob 모듈로 경로 만들고 fileinput 모듈로 파일 열기

import glob

# 해당 경로의 파일(디렉토리) 이름을 리스트로 반환
glob.glob(os.path.join('data/', '*.txt')) # 경로를 합쳐준다.

with fileinput.input(glob.glob(os.path.join('data/', '*.txt'))) as f:
    for line in f:
        print(line)

glob 모듈의 glob 함수를 사용하여 해당 패턴에 맞는 파일을 찾는다. 

 

'파이썬 > 기본' 카테고리의 다른 글

[파이썬] 임의 정밀도 정수 - 미완  (0) 2023.10.21
[파이썬] OS모듈  (0) 2023.09.15
[파이썬] 객체지향과 클래스  (0) 2023.09.14
[파이썬] 재귀 호출  (0) 2023.09.14
[파이썬] 콜백함수 & 람다함수  (0) 2023.09.14

댓글