Getting file size in Python? [duplicate]
Is there a built-in function for getting the size of a file object in bytes? I see some people do something like this:
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)
But from my experience with Python, it has a lot of helper functions so I'm guessing maybe there is one built-in.
Solution 1:
Use os.path.getsize(path)
which will
Return the size, in bytes, of path. Raise
OSError
if the file does not exist or is inaccessible.
import os
os.path.getsize('C:\\Python27\\Lib\\genericpath.py')
Or use os.stat(path).st_size
import os
os.stat('C:\\Python27\\Lib\\genericpath.py').st_size
Or use Path(path).stat().st_size
(Python 3.4+)
from pathlib import Path
Path('C:\\Python27\\Lib\\genericpath.py').stat().st_size
Solution 2:
os.path.getsize(path)
Return the size, in bytes, of path. Raise os.error if the file does not exist or is inaccessible.
Solution 3:
You may use os.stat()
function, which is a wrapper of system call stat()
:
import os
def getSize(filename):
st = os.stat(filename)
return st.st_size
Solution 4:
Try
os.path.getsize(filename)
It should return the size of a file, reported by os.stat().
Solution 5:
You can use os.stat(path)
call
http://docs.python.org/library/os.html#os.stat