파일의 생성 시간을 확인하려면 Windows에서는 os.path.getctime(file_path) 함수를 사용하면 됩니다. 다만 UNIX 계열 시스템(macOS, Linux 등)에서는 이 함수가 파일의 속성이나 내용이 마지막으로 변경된 시간을 반환하기 때문에 같은 용도로 사용할 수 없습니다. UNIX 기반 시스템에서 생성 시간을 얻으려면 os.stat()이 반환하는 객체의 st_birthtime 속성을 사용해야 합니다.
Windows에서 생성 시간 확인하기
Windows 환경에서는 다음과 같이 간단하게 확인할 수 있습니다.
>>> import os
>>> print(os.path.getctime('my_file'))
1505928271.0689342
반환되는 값은 에포크(epoch, 1970년 1월 1일 00:00:00 UTC) 이후 경과된 시간을 초 단위로 나타낸 숫자입니다. 사람이 읽기 쉬운 형태로 변환하려면 datetime 모듈을 함께 사용하면 좋습니다.
import os
from datetime import datetime
timestamp = os.path.getctime('my_file')
print(datetime.fromtimestamp(timestamp))
# 예: 2017-09-20 21:24:31.068934
UNIX/macOS에서 생성 시간 확인하기
macOS 등 일부 UNIX 시스템에서는 st_birthtime 속성으로 실제 생성 시간을 얻을 수 있습니다. Linux에서는 이 속성이 제공되지 않으므로, 아래 예제처럼 예외 처리를 통해 수정 시간(st_mtime)으로 대체하는 것이 일반적입니다.
import os
stat = os.stat(path_to_file)
try:
print(stat.st_birthtime)
except AttributeError:
# Linux에서는 생성 날짜를 쉽게 구할 수 없으므로,
# 파일 내용이 마지막으로 수정된 시간으로 대체합니다.
print(stat.st_mtime)
출력 결과
위 코드를 실행하면 다음과 같은 출력을 얻습니다.
1505928271.0689342
파일의 수정 시간 확인하기
파일의 수정 시간을 확인하려면 os.path.getmtime(path) 함수를 사용하면 됩니다. 이 함수는 Windows, macOS, Linux 등 운영체제에 관계없이 동일하게 동작하는 크로스 플랫폼 API입니다.
>>> import os
>>> print(os.path.getmtime('my_file'))
1505928275.3081832
참고 사항
생성 시간은 파일 시스템에 따라 지원 여부가 달라집니다. 특히 대부분의 Linux 파일 시스템(ext4 등)은 전통적으로 파일 생성 시간을 저장하지 않으므로, 정확한 생성 시간이 필요하다면 macOS의 st_birthtime 또는 Windows의 getctime()을 사용하는 것이 안전합니다. 반면 수정 시간(getmtime())은 모든 주요 플랫폼에서 신뢰할 수 있습니다.