행궁동 데이터 엔지니어

반응형

Python의 os 모듈을 이용해서 파일 생성시간, 용량 등 파일 정보를 출력하는 방법입니다.

  • os (Operating System, 운영체제)

본론으로 들어가

파일 생성, 파일 수정, 마지막 액세스시간 및 파일 크기를 구하는 명령어는 아래와 같습니다.

항목 명령어 약자
파일 생성 시간 os.path.getctime('파일경로') getctime : get creation time
파일 수정 시간 os.path.getmtime('파일경로') getmtime : get modification time
마지막 액세스 시간 os.path.getatime('파일경로') getatime : get access time
파일 크기 os.path.getsize('파일경로') -

 

참고로 말씀드리면 파일 생성, 수정, 마지막 액세스 시간은 Unix time으로 반환 됩니다.

  • Unix time(유닉스 시간) : 시각을 나타내는 방식이다. POSIX 시간이나 Epoch 시간이라고 부르기도 한다.
  • 1970 1월 1일 00:00:00 협정 세계표준시(UTC) 부터의 경과 시간을 초로 환상하여 정수로 나타낸 것이다.
  • Unix time 상세 : ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%89%EC%8A%A4_%EC%8B%9C%EA%B0%84

 

os.path.getctime() 등에서 얻은 Unix time을 date형식으로 사용하고 싶으시면 datetime 모듈을 이용해서 datetime 또는 string으로 변경해줘야 합니다. 

 

 

파일 생성 시간 확인 및 Unix time 변경 예시

 

아래에 파일 시간을 얻고 datetime으로 변경하는 상세 코드 남기겠습니다.

 

파일 시간 및 크기 출력

  • print() 함수로 값을 출력할 때 type() 함수로 객체 type도 확인
">>>" 다음에 나오는 내용은 출력을 의미합니다.

# 파일리스트 확인
os.listdir()[:4]
>>> ['.git', '.ipynb_checkpoints', 'agrv_test.ipynb', 'arg_parse.py']

# 파일 생성시간 확인 (Unix time)
create_time = os.path.getctime('arg_parse.py')
print(type(create_time), create_time)
>>> <class 'float'> 1617628854.835492

# 파일 수정시간 확인
modified_time = os.path.getmtime('arg_parse.py')
print(type(modified_time), modified_time)
>>> <class 'float'> 1617628854.835492

# 마지막 액세스 시간
access_time = os.path.getatime('arg_parse.py')
print(type(access_time), access_time)
>>> <class 'float'> 1617628854.835492

# 파일 크기 확인
file_size = os.path.getsize('arg_parse.py')
print(type(file_size), file_size)
>>> <class 'int'> 416

Unix time을 datetime 및 string으로 변경하기

# datetime 모듈 import
import datetime

# creation time을 datetime으로 변경
create_timestamp = datetime.datetime.fromtimestamp(create_time)
print(type(create_timestamp), create_timestamp)
>>> <class 'datetime.datetime'> 2021-04-05 21:25:40.311087

# datetime을 string으로 변경
time_string = datetime.datetime.strftime(create_timestamp, '%Y-%m-%d %H:%M:%S')
print(type(time_string), time_string)
>>> <class 'str'> 2021-04-05 21:25:40

 

추가적으로 궁금하신 사항은 편하게 댓글 남겨주세요.

 

감사합니다.

 

1. 파이썬 공식문서, os.path - Common pathname manipulations,  https://docs.python.org/3/library/os.path.html
2. 윤태호, 파이썬 조각 코드 모음집, https://wikidocs.net/book/536

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band