Python의 os 모듈을 이용해서 파일 생성시간, 용량 등 파일 정보를 출력하는 방법입니다.
본론으로 들어가
파일 생성, 파일 수정, 마지막 액세스시간 및 파일 크기를 구하는 명령어는 아래와 같습니다.
항목 | 명령어 | 약자 |
파일 생성 시간 | 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으로 반환 됩니다.
os.path.getctime() 등에서 얻은 Unix time을 date형식으로 사용하고 싶으시면 datetime 모듈을 이용해서 datetime 또는 string으로 변경해줘야 합니다.
아래에 파일 시간을 얻고 datetime으로 변경하는 상세 코드 남기겠습니다.
">>>" 다음에 나오는 내용은 출력을 의미합니다.
# 파일리스트 확인
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
# 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
[Python] Python Exception 리스트 (0) | 2021.05.01 |
---|---|
[Airflow] ModuleNotFoundError: No module named 'sqlalchemy.ext.declarative.clsregistry' (0) | 2021.04.20 |
[Python] 인자를 넘겨받아 스크립트(.py 파일) 실행하는 2가지 방법 (0) | 2021.04.05 |
[Python] Instance, Class, Static Method(메소드) 정리 자료 (0) | 2021.04.05 |
[Python] DataFrame np.inf, -np.inf 처리하기 (0) | 2021.03.31 |