PYnative

Python Programming

  • Learn Python
    • Python Tutorials
    • Python Basics
    • Python Interview Q&As
  • Exercises
    • Python Exercises
    • C Programming Exercises
    • C++ Exercises
  • Quizzes
  • Code Editor
    • Online Python Code Editor
    • Online C Compiler
    • Online C++ Compiler
Home » Python » File Handling » Python Check File Size

Python Check File Size

Updated on: December 29, 2021 | 1 Comment

In this tutorial, you’ll learn how to get file size in Python.

Whenever we work with files, sometimes we need to check file size before performing any operation. For example, if you are trying to copy content from one file into another file. In this case, we can check if the file size is greater than 0 before performing the file copying operation.

In this article, We will use the following three methods of an OS and pathlib module to get file size.

os.path module:

  • os.path.getsize('file_path'): Return the file size in bytes.
  • os.stat(file).st_size: Return the file size in bytes

Pathlib module:

  • pathlib.Path('path').stat().st_size: Return the file size in bytes.

os.path.getsize() Method to Check File Size

For example, you want to read a file to analyze the sales data to prepare a monthly report, but before performing this operation we want to check whether the file contains any data.

The os.path module has some valuable functions on pathnames. Here we will see how to use the os.path module to check the file size.

  1. Important the os.path module

    This module helps us to work with file paths and directories in Python. Using this module, we can access and manipulate paths

  2. Construct File Path

    A file path defines the location of a file or folder in the computer system. There are two ways to specify a file path.

    Absolute path: which always begins with the root folder. The absolute path includes the complete directory list required to locate the file. For example, /user/Pynative/data/sales.txt is an absolute path to discover the sales.txt. All of the information needed to find the file is contained in the path string.

    Relative path: which is relative to the program’s current working directory.

    To maintain uniformity across the operating system, use the forward-slash (/) to separate the path. It’ll work across Windows, macOS, and Unix-based systems, including Linux.

  3. Use os.path.getsize() function

    Use the os.path.getsize('file_path') function to check the file size. Pass the file name or file path to this function as an argument. This function returns file size in bytes. It raises OSError if the file does not exist or is inaccessible.

Example To Get File Size

import os.path

# file to check
file_path = r'E:/demos/account/sales.txt'

sz = os.path.getsize(file_path)
print(f'The {file_path} size is', sz, 'bytes')Code language: Python (python)

Output:

E:/demos/account/sales.txt size is 10560 bytes

Get File Size in KB, MB, or GB

  • First, get the file size using the getsize() function.
  • Next, convert bytes to KB or MB.

Use the following example to convert the file size in KB, MB, or GB.

import os.path

# calculate file size in KB, MB, GB
def convert_bytes(size):
    """ Convert bytes to KB, or MB or GB"""
    for x in ['bytes', 'KB', 'MB', 'GB', 'TB']:
        if size < 1024.0:
            return "%3.1f %s" % (size, x)
        size /= 1024.0

f_size = os.path.getsize(r'E:/demos/account/sales.txt')
x = convert_bytes(f_size)
print('file size is', x)Code language: Python (python)

Output:

file size is 10.3 KB

os.stat() Method to Check File Size

The os.stat() method returns the statistics of a file such as metadata of a file, creation or modification date, file size, etc.

  • First, import the os module
  • Next, use the os.stat('file_path') method to get the file statistics.
  • At the end, use the st_size attribute to get the file size.

Note: The os.path.getsize() function internally uses the os.stat('path').st_size.

Example:

import os

# get file statistics
stat = os.stat(r'E:/demos/account/sales.txt')

# get file size
f_size = stat.st_size
print('file size is', f_size, 'bytes')Code language: Python (python)

Output:

file size is 10560 bytes

Pathlib Module to Get File Size

From Python 3.4 onwards, we can use the pathlib module, which provides a wrapper for most OS functions.

  • Import pathlib module: Pathlib module offers classes and methods to handle filesystem paths and get data related to files for different operating systems.
  • Next, Use the pathlib.Path('path').stat().st_size attribute to get the file size in bytes

Example:

import pathlib

# calculate file size in KB, MB, GB
def convert_bytes(size):
    """ Convert bytes to KB, or MB or GB"""
    for x in ['bytes', 'KB', 'MB', 'GB', 'TB']:
        if size < 1024.0:
            return "%3.1f %s" % (size, x)
        size /= 1024.0

path = pathlib.Path(r'E:/demos/account/sales.txt')
f_size = path.stat().st_size
print('File size in bytes', f_size)

# you can skip this if you don't want file size in KB or MB
x = convert_bytes(f_size)
print('file size is', x)Code language: Python (python)

Output:

file size is 10.3 KB

Get File Size of a File Object

Whenever we use file methods such as read() or a write(), we get a file object in return that represents a file.

Also, sometimes we receive a file object as an argument to a function, and we wanted to find a size of a file this file object is representing.

All the above solutions work for a file present on a disk, but if you want to find file size for file-like objects, use the below solution.

We will use the seek() function to move the file pointer to calculate the file size. Let’s see the steps.

  • Use the open() function to open a file in reading mode. When we open a file, the cursor always points to the start of the file.
  • Use the file seek() method to move the file pointer at the end of the file.
  • Next, use the file tell() method to get the file size in bytes. The tell() method returns the current cursor location, equivalent to the number of bytes the cursor has moved, which is nothing but a file size in bytes.

Example:

# fp is a file object.
# read file
fp = open(r'E:/demos/account/sales.txt', 'r')
old_file_position = fp.tell()

# Moving the file handle to the end of the file
fp.seek(0, 2)

# calculates the bytes 
size = fp.tell()
print('file size is', size, 'bytes')
fp.seek(old_file_position, 0)Code language: Python (python)

Output:

file size is 10560 bytes

Sumary

In this article, We used the following three methods of an OS and pathlib module to get file size.

os.path module:

  • os.path.getsize('file_path'): Return the file size in bytes.
  • os.stat(file).st_size: Return the file size in bytes

Pathlib module:

  • pathlib.Path('path').stat().st_size: Return the file size in bytes.

Filed Under: Python, Python File Handling

Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.

TweetF  sharein  shareP  Pin

About Vishal

Image

I’m Vishal Hule, the Founder of PYnative.com. As a Python developer, I enjoy assisting students, developers, and learners. Follow me on Twitter.

Related Tutorial Topics:

Python Python File Handling

All Coding Exercises:

C Exercises
C++ Exercises
Python Exercises

Python Exercises and Quizzes

Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.

  • 15+ Topic-specific Exercises and Quizzes
  • Each Exercise contains 25+ questions
  • Each Quiz contains 25 MCQ
Exercises
Quizzes

Comments

  1. ImageChiuWingHei says

    January 2, 2023 at 3:39 pm

    Bro this editor is a nigga

    Reply

Leave a Reply Cancel reply

your email address will NOT be published. all comments are moderated according to our comment policy.

Use <pre> tag for posting code. E.g. <pre> Your entire code </pre>

In: Python Python File Handling
TweetF  sharein  shareP  Pin

  Python File Handling

  • File Handling In Python
  • Create File in Python
  • Open a File in Python
  • Read File in Python
  • Write to File in Python
  • Python File Seek
  • Rename Files in Python
  • Delete Files in Python
  • Copy Files in Python
  • Move Files in Python
  • List Files in a Directory
  • File Handling Quiz

 Explore Python

  • Python Tutorials
  • Python Exercises
  • Python Quizzes
  • Python Interview Q&A
  • Python Programs

All Python Topics

Python Basics Python Exercises Python Quizzes Python Interview Python File Handling Python OOP Python Date and Time Python Random Python Regex Python Pandas Python Databases Python MySQL Python PostgreSQL Python SQLite Python JSON

About PYnative

PYnative.com is for Python lovers. Here, You can get Tutorials, Exercises, and Quizzes to practice and improve your Python skills.

Follow Us

To get New Python Tutorials, Exercises, and Quizzes

  • Twitter
  • Facebook
  • Sitemap

Explore Python

  • Learn Python
  • Python Basics
  • Python Databases
  • Python Exercises
  • Python Quizzes
  • Online Python Code Editor
  • Python Tricks

Coding Exercises

  • C Exercises
  • C++ Exercises
  • Python Exercises

Legal Stuff

  • About Us
  • Contact Us

We use cookies to improve your experience. While using PYnative, you agree to have read and accepted our:

  • Terms Of Use
  • Privacy Policy
  • Cookie Policy

Copyright © 2018–2026 pynative.com

Advertisement