# Getting file size in Python?

## The Question :

544 people think this question is useful

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.

• Path('./doc.txt').stat().st_size

761 people think this answer is useful

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')


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



219 people think this answer is useful
os.path.getsize(path)



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

94 people think this answer is useful

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



25 people think this answer is useful

Try

os.path.getsize(filename)



It should return the size of a file, reported by os.stat().

You can use os.stat(path) call