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.
- os.stat() function
- os.path.getsize() function
- By reading the first character
- 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.