在python中获取文件大小?

Getting file size in Python?

本问题已经有最佳答案,请猛点这里访问。

是否有用于获取文件对象大小(以字节为单位)的内置函数?我看到有些人这样做:

1
2
3
4
5
6
7
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的经验,它有很多助手函数,所以我猜可能有一个内置的。


尝试查看http://docs.python.org/library/os.path.html os.path.getsize

os.path.getsize(path) Return the size,
in bytes, of path. Raise os.error if
the file does not exist or is
inaccessible.

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

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


1
os.path.getsize(path)

返回路径的大小(以字节为单位)。如果文件不存在或不可访问,则引发os.error。


您可以使用os.stat()函数,它是系统调用stat()的包装器:

1
2
3
4
5
import os

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

尝试

1
os.path.getsize(filename)

它应该返回由os.stat()报告的文件大小。


您可以使用os.stat(path)呼叫

http://docs.python.org/library/os.html os.stat