How to Get File size in bytes, KB, MB, GB, TB format, python with example
This short post explains multiple ways to get the size of a file in Python with examples
Python File Size Example
To get file size in bytes, Python provides multiple ways. The first way is using os.path.getsize()
function
Syntax:
os.path.getsize(filepath)
Arguments: filepath
: Path of a file.
Returns:
- Returns file size in bytes.
- throws
OSError
if the file is not found or no file read access permission
Here is an example
import os
print(os.path.getsize("./emp.json"))
Output:
129
This function internally calls to os.stat("./emp.json").st_size
method.
- use os stat function st_size property.
os
module has [stat](https://docs.python.org/3/library/os.html#os.stat)
function that returns os.stat_result
data.
Syntax:
os.stat(filepath)
Arguments: filepath
: Path of a file.
Returns:
Returns data of the
os.stat_result
class.stat_result
containsst_mode
,st_ino
,st_dev
,st_nlink
,st_uid
,st_gid
st_size
,st_atime
,st_mtime
,st_ctime
properties.st_size
contains the size of a file in bytes.throws
FileNotFoundError
if the file is not found
import os
print(os.stat("./emp.json"))
Output:
os.stat_result(st_mode=33206, st_ino=1407374886069737, st_dev=3330445139, st_nlink=1, st_uid=0, st_gid=0, st_size=129, st_atime=1668608646, st_mtime=1668608646, st_ctime=1668608600)
To get file size in bytes, call os.start(filepath).st_size
Here is an example
import os
startResult=os.stat("./emp.json")
print(startResult.st_size)
129
- use Path(path).stat().st_size
Path
class has stat()
🔗 method that returns the os.stat_result
, which contains st_size property to get file size.
Here is an example
import os
from pathlib import Path
startResult=Path("./emp.json").stat()
print(startResult)
print(startResult.st_size)
Output:
os.stat_result(st_mode=33206, st_ino=1407374886069737, st_dev=3330445139, st_nlink=1, st_uid=0, st_gid=0, st_size=129, st_atime=1668608646, st_mtime=1668608646, st_ctime=1668608600)
129
Convert file size in bytes to KB, MB, GB, and TB in python examples
To get the file size in KB, MB, GB, and TB bytes in python, use
Python os stat method contains the size of the file in Bytes. This example converts file size in bytes to kilobytes, megabytes, gigabytes, terabytes
- First, find the size of a file using os.stat().st_size, returns size in bytes
- Convert the bytes to
Kilobytes(KB)
using floating division with float(1024) - kilobytes converted to
megabytes(MB)
using floating division with float(1024) - megabytes converted to
gigabytes(GB)
using floating division with float(1024) - gigabytes converted to
terabytes(TB)
using floating division with float(1024)
Here is an example
import os
startResult=os.stat("b:\meeting.mp4")
sizeinbytes=startResult.st_size;
print (sizeinbytes,"Bytes") # Bytes (B)
sizeinkb = sizeinbytes / float(1024);
print (sizeinkb,"KB") # kilobytes (kB)
sizeinmb = sizeinkb / float(1024);
print (sizeinmb ,"MB") # megabytes (MB)
sizeingb = sizeinmb / float(1024);
print (sizeingb,"GB") # gigabytes (GB)
sizeintb = sizeingb / float(1024);
print (sizeintb,"TB") # terabytes (TB)
Output:
3145728000 Bytes
3072000.0 KB
3000.0 MB
2.9296875 GB
0.00286102294921875 TB
Conclusion
Learned multiple ways to get file size in python example. It returns bytes and converts these to KB, MB, GB, and TB.