如何在Python中获取文件大小?

686 投票
5 回答
810866 浏览
提问于 2025-04-16 20:55

有没有一个内置的函数可以获取文件对象的大小,单位是字节?我看到有些人是这样做的:

def getSize(fileobject):
    fileobject.seek(0,2) # move the cursor to the end of the file
    size = fileobject.tell()
    return size

file = open('myfile.bin', 'rb')
print getSize(file)

不过根据我对Python的了解,它有很多辅助函数,所以我在想可能会有一个内置的函数可以用。

5 个回答

98

你可以使用 os.stat() 这个函数,它是一个对系统调用 stat() 的封装:

import os

def getSize(filename):
    st = os.stat(filename)
    return st.st_size
253
os.path.getsize(path)

返回路径所指文件的大小,单位是字节。如果文件不存在或者无法访问,就会抛出一个错误。

979

可以使用 os.path.getsize(path) 这个方法,它会

返回指定路径 path 的文件大小,单位是字节。如果文件不存在或者无法访问,它会抛出一个 OSError 错误。

import os
os.path.getsize('C:\\Python27\\Lib\\genericpath.py')

或者可以使用 os.stat(path).st_size

import os
os.stat('C:\\Python27\\Lib\\genericpath.py').st_size 

或者使用 Path(path).stat().st_size(适用于 Python 3.4 及以上版本)

from pathlib import Path
Path('C:\\Python27\\Lib\\genericpath.py').stat().st_size

撰写回答