반응형
파이썬에서 코딩을 하다보면 하나의 폴더 내 파일 리스트를 가져와야 하는 경우가 종종 있다.
또는 존재하는 파일 중 특정 패턴을 가진 파이들을 불러와야 하는 경우도 있다.
이 때, os 또는 glob 모듈을 사용해서 해결한다.
os module ver.
os 모듈에서는 listdir을 사용해서 특정 폴더에 있는 파일 리스트를 가져올 수 있다.
import os
path = './'
os.listdir(path)
위와 같은 문장을 실행하면 아래와 같이 list형태로 나온다.
['SearchInfo.tsv',
'Category.tsv',
'sampleSubmission_HistCTR.csv']
만일 특정한 패턴을 가진 파일들의 리스트만 출력하고 싶다면 아래와 같이 작성하면 된다.
import os
path = './'
file_list = os.listdir(path)
[file for file in file_list if file.endswith('.py')]
os 모듈에서의 특징은
os를 사용해서 파일 리스트를 불러온다면, 경로를 불러올 수는 없고, 파일명과 확장자만 불러오게 된다.
만일 위 모듈을 통해 파일을 불러오는 코드를 작성해야 한다면, 조금 낭패가 될 수 있다.
그것이 조금 보완된 모듈이 glob 모듈이다.
glob module ver.
glob으로 특정 폴더 내 파일의 리스트를 불러오는 방법은 아래와 같다.
import glob
path = './*'
file_list = glob.glob(path) ## 폴더 안에 있는 모든 파일 출력
[file for file in file_list if file.endswith('.tsv')] ## 특정 패턴의 파일만 출력
사실 glob 함수 안에 문자열의 패턴을 직접 입력하면 for문과 같은 과정을 거치지 않아도 된다.
중요한 점은 출력되는 리스트가 아래와 같이 경로로 나온다는 점이다.
['./SearchInfo.tsv',
'./Category.tsv',
'./sampleSubmission_HistCTR.csv']
참고 :
itholic.github.io/python-listdir-glob/
반응형
'Code > Python' 카테고리의 다른 글
[Python] pandas - DataFrame/Series 에서 순위 구하는 함수 rank() (0) | 2021.01.14 |
---|---|
[Python] 파이썬 파일 크기 사이즈 구하기 - os.path.getsize() (0) | 2021.01.12 |
[Python] pytorch 모델 저장하기 - state_dict() (0) | 2021.01.06 |
[Python] isinstance 함수 - 파이썬 자료형 확인하는 함수 (0) | 2021.01.06 |
[Python] enumerate 함수 (0) | 2020.12.31 |