Hurry! Try our new Interactive Courses for FREE. 🥳   🚀
  Signup/Sign In

How to check whether a File is Empty or not

In this article, we will learn to check whether a file is empty or not in Python. We will use some built-in functions, some simple approaches, and some custom codes as well to better understand the topic.

Check whether a File is Empty or Not

Programmers may encounter situations where they need to check whether a file has data or the file is empty before performing any file operations. The empty file does not contain any data and is of zero bytes. In order to check whether a file is empty or not, you must check that your file exists. If the file does not exist, it will return "FileNotFoundError".

We will learn four ways to check whether a file is empty or not.

  1. os.stat() function
  2. os.path.getsize() function
  3. By reading the first character
  4. Using regex module

Example: Check File Exists or Not

This method uses os.path.exists() from os module in Python to check whether a file exists or not. It takes the file path as an argument. It returns True if the file exists else it returns False.

import os

def check(file_name):
    # Check if file exist or not
    return os.path.exists(file_name)

check("sample.txt")


True

Example: Check if the File is Empty using os.stat() Function

The os module provides os.stat().st_size function to check whether a file is empty or not. It takes the file path as an argument. It will check for the file size. If the file size is 0, it will print the file as Empty. If your file contains empty blanks or newlines, then it will print that file as Not Empty.

import os

check_file = os.stat("sample.txt").st_size

if(check_file == 0):
    print("The file is empty.")
else:
    print("The file is not empty.")


The file is not empty.

Example: If File does not Exists

If you want to check about the file size and if the file does not exist, it will return "FileNotFoundError". Look at the code snippet below to see the error.

import os

check_file = os.stat("textfile.txt").st_size

if(check_file == 0):
    print("The file is empty.")
else:
    print("The file is not empty.")


FileNotFoundError: [WinError 2] The system cannot find the file specified: 'textfile.txt'

Check if the File is Empty using os.path.getsize() Function

The os module provides another function os.path.getsize() to check whether a file is empty or not. It takes the file path as an argument. It will check for the file size. If the file size is 0, it will print the file as Empty. If your file contains empty blanks or newlines, then it will print that file as Not Empty.

import os

check_file = os.path.getsize("sample.txt")

if(check_file == 0):
    print("The file is empty.")
else:
    print("The file is not empty.")


The file is not empty.

Example: If File does not Exists

If you want to check about the file size and if the file does not exist, it will also return "FileNotFoundError". Look at the code snippet below to see the error.

import os

check_file = os.path.getsize("textfile.txt")

if(check_file == 0):
    print("The file is empty.")
else:
    print("The file is not empty.")


FileNotFoundError: [WinError 2] The system cannot find the file specified: 'textfile.txt'

Check if the File is Empty by Reading its First Character

This method opens the file in reading mode and reads only the first character of the given file using read() function. 1 is passed as an argument to denote the first character. It can also take empty blanks or newlines as the first character. If it is not able to read the first character of the file, it prints the file as Empty.

def check(filename):
    # open file in read mode
    with open(filename, 'r') as read_obj:
        # read first character
        first_char = read_obj.read(1)

    # if not fetched then file is empty
    if not one_char:
        print("File is empty")
    else:
        print("File is not empty")

#function call
check("sample.txt")


File is not empty

Example: If File does not Exists

If you want to check about the file size and if the file does not exist, it will also return "FileNotFoundError". Look at the code snippet below to see the error.

def check(filename):
    # open file in read mode
    with open(filename, 'r') as read_obj:
        # read first character
        first_char = read_obj.read(1)

    # if not fetched then file is empty
    if not one_char:
        print("File is empty")
    else:
        print("File is not empty")

#function call
check("textfile.txt")


FileNotFoundError: [Errno 2] No such file or directory: 'textfile.txt'

Conclusion

In this article, we learned how to check whether a file is empty or not in Python by using built-in functions such as os.path.getsize(), os.stat().st_size, read() and re.search() . We used some custom codes and file handling concepts as well. Two things to keep in mind are - Firstly, you must check whether your file exists or not to avoid "FileNotFoundError". Secondly, some files may appear non-empty when created, because of newline and carriage return characters.