Python에서 같은 파일명의 최신 파일을 불러오는 방법에 대한 포스팅 입니다.
data 디렉터리에 아래 파일들이 있고,
data_210713.csv
파일이 제일 마지막에 수정되었다고 가정합니다.
data_210701.csv
data_210707.csv
data_210713.csv
특정 파일명을 지정하지 않아도 data_*.csv
파일 중 파일 수정시간 기준 최신 파일을 가져오고 싶은 경우의 코드 입니다.
(os, glob 패키지는 Python 설치 시 기본적으로 내장되어있어 별도로 패키지 설치할 필요가 없습니다.)
import os
import glob
files = glob.glob('data/data_*.csv')
recent_file = max(files, key=os.path.getmtime)
print(recent_file)
코드 실행 결과, 아래와 같이 가장 최근에 수정된 파일이 출력되는 것을 확인할 수 있습니다.
data/data_210713.csv
다른 기준으로 파일을 가져오고 싶은 경우, 아래 key 값을 참고해주세요.
os.path.getctime
: 파일 생성시간 기준os.path.getatime
: 파일 최근 접근시간 기준os.path.getmtime
: 파일 최종 수정시간 기준os.path.getsize
: 파일 용량 기준다만, 로컬이 아닌 CI 서버에서 git으로부터 csv 파일들을 최초로 가져올 때, 파일 쓰기를 하면서 기대와 다르게 data_210701.csv
파일을 최신 파일로 인식하는 경우가 있어 최신 파일을 가져오는 다른 방법을 생각하게 되었습니다.
그 방법은 파일명 내 날짜를 기준으로 정렬하는 것으로, 별도 포스팅으로 다룹니다.