os 모듈의 stat() 메서드는 파일과 디렉터리에 대한 다양한 운영체제 관련 정보를 조회할 때 사용됩니다. 예를 들어 특정 파일에 설정된 사용자 정의 플래그나 파일 크기(바이트 단위) 등을 확인할 수 있어, 파일 시스템을 다루는 파이썬 프로그램에서 매우 유용하게 활용됩니다.
os.stat()의 주요 속성
stat() 호출 시 반환되는 결과 객체에는 여러 속성이 포함되어 있으며, 자주 사용되는 주요 속성과 그 의미는 다음과 같습니다.
st_size – 파일의 크기를 바이트 단위로 나타냅니다.
st_atime – 파일에 가장 최근에 접근한 시간을 초 단위로 나타냅니다.
st_mtime – 파일 내용이 마지막으로 수정된 시간을 초 단위로 나타냅니다.
st_ctime – Unix 계열에서는 메타데이터가 마지막으로 변경된 시간을, Windows에서는 파일 생성 시간을 초 단위로 나타냅니다.
st_blocks – 파일에 할당된 512바이트 블록의 개수를 나타냅니다.
st_uid – 파일 소유자의 사용자 ID(UID)를 나타냅니다.
st_gid – 파일 소유자의 그룹 ID(GID)를 나타냅니다.
st_dev – 해당 파일이 저장된 장치의 식별자를 나타냅니다.
st_ino – 파일의 inode 번호를 나타내며, 같은 파일 시스템 안에서 파일을 고유하게 구분하는 역할을 합니다.
st_mode – 파일 유형과 접근 권한 정보를 비트 형태로 담고 있습니다.
st_nlink – 해당 파일을 가리키는 하드 링크의 개수를 나타냅니다.
st_flags – 파일에 대해 사용자가 정의한 플래그를 나타냅니다.
사용 예제
다음 예제는 os.stat()을 사용해 파일의 상태 정보를 가져오고 출력하는 기본적인 방법을 보여줍니다.
import os # 조회할 파일 경로 지정 path = 'E:\\customers.csv' # 파일 상태 정보 가져오기 status = os.stat(path) # 결과 출력 print(status)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
os.stat_result(st_mode=33206, st_ino=1125899906970419, st_dev=1614938858, st_nlink=1, st_uid=0, st_gid=0, st_size=261693, st_atime=1593271710, st_mtime=1593271710, st_ctime=1593271710)
출력 결과를 해석해 보면, st_size=261693이므로 파일 크기는 약 261KB입니다. 또한 이 예제에서는 st_atime, st_mtime, st_ctime 값이 모두 동일하게 나타나는데, 이는 파일 생성 직후 접근·수정·메타데이터 변경이 거의 동시에 이루어졌음을 의미합니다. 이처럼 os.stat()의 반환 값을 활용하면 파일의 크기, 소유자, 시간 정보 등을 손쉽게 확인할 수 있습니다.