프로그래밍/Python

[Python] 파일 크기(File Size) 확인 방법

채윤아빠 2021. 10. 11. 22:49
728x90
반응형


파이썬에서 파일의 크기를 확인하는 방법들을 몇 가지 알아보도록 하겠습니다.

  • os.path.getsize() 함수 이용
  • os.stat() 함수 이용
  • open(), seek(), tell(), close() 기본 파일 함수 이용

다음은 위 세 가지 방법들을 이용하여 파일 크기를 확인하는 예제입니다.

from os import path, stat, SEEK_END

file_name = './file_size3.py'

# 1) use os.path.getsize()
file_size1 = path.getsize(file_name)
print(f'get file_size #1 (os.path.getsize()) = {file_size1}')

# 2) use os.stat()
file_stat = stat(file_name)
print(f'file_stat = {file_stat}')
file_size2 = file_stat.st_size
print(f'get file_size #2 (os.stat()) = {file_size2}')

# 3) use open(), seek(), tell(), close()
f = open(file_name, 'rb')
f.seek(0, SEEK_END)
file_size3 = f.tell()
print(f'get file_size #3 (seek(), tell()) = {file_size3}')
f.close()

가장 쉽고 간단한 것은 os.path.getsize() 함수 이용하는 방법입니다.

os.stat()의 실행 결과로 반환되는 결과에는 파일에 대한 여러 정보(파일 크기, 소유자, 파일 생성일 등)가 함께 포함되어 있고, 그 중에서 파일 크기도 확인할 수 있습니다.

open(), seek(), tell(), close() 기본 파일 함수 이용하는 방법은 좀 복잡해 보이지만 이진 파일 등을 다루기 위해서는 꼭 알아야 할 함수들입니다. open() 함수를 통하여 파일을 열고, seek() 함수를 이용하여 파일의 특정 위치로 이동합니다. tell() 함수를 이용하여 현재 파일의 위치 정보를 얻을 수 있는데 위 예제에서는 파일을 열고(open) 마지막 위치로 이동 후(seek) 현재 파일의 위치 정보를 받아서 파일 크기를 구하는 방식입니다. close() 함수는 열었던 이진 파일을 닫고 사용중이던 리소스를 반환합니다.

위 예제를 실행한 결과는 다음과 같습니다.

get file_size #1 (os.path.getsize()) = 592
file_stat = os.stat_result(st_mode=33206, st_ino=281474976928763, st_dev=2551902280, st_nlink=1, st_uid=0, st_gid=0, st_size=592, st_atime=1652058224, st_mtime=1652058224, st_ctime=1652057736)
get file_size #2 (os.stat()) = 592
get file_size #3 (seek(), tell()) = 592

참고자료

https://codippa.com/how-to-check-file-size-in-python-3-ways-to-find-out-size-of-file-in-python/
http://mwultong.blogspot.com/2007/04/python-file-size-in-bytes.html