# Python: Three ways to check if a file is empty

## Three ways to check if a file is empty in Python.

The three ways are

1. Using os.stat() method.
2. Using  os.path.getsize() method.

### Method-1 : Use os.stat() to check if a file is empty :

In python, there is a stat() function which can be used to get the statistics about a file.

os.stat(path, *, dir_fd=None, follow_symlinks=True)

This function

• It accepts file path (string type) as an argument.
• It returns an object of the structure stat containing various attributes. (Like st.size to know size of the file)
#Program :

#importing the os module
import os

#file path as string type
path_of_file = 'sample.txt'

# checking if size of file is 0
if os.stat(path_of_file).st_size == 0:
print('File is empty')
else:
print('File is not empty')
Output :
File is empty

As our file is empty, so it returned ‘File is empty’.

But we have to be more careful while using it, because if the file does not exist at the respective path then FileNotFoundError.

FileNotFoundError: [WinError 2] The system cannot find the file specified: FILE_NAME

So by keeping that in mind first we will check the file exists or not. We will create a separate function for that. After checking if we will find the file exists then we will check the file is empty or not.

So, let’s see the implementation of it.

#Program :

import os

#Checking the file exists or not
def check_file_empty(path_of_file):
#Checking if file exist and it is empty
return os.path.exists(path_of_file) and os.stat(path_of_file).st_size == 0

path_of_file = 'sample.txt'

# checking if file exist and it is empty
EmptyOrNot = check_file_empty(path_of_file)
if EmptyOrNot:
print('File is empty')
else:
print('File is not empty')
Output :
File is empty

### Method-2 : Check if file is empty using os.path.getsize() in Python :

In Python, os module there is an another function, by using which we can check if a file is empty or not.

os.path.getsize(path)

This function takes file path as an argument and returns the size in bytes. If the file does not exists it gives FileNotFoundError.

#program :

import os

#file path
path_of_file = 'sample.txt'

# checking if size of file is 0
if os.path.getsize(path_of_file) == 0:
print('File is empty')
else:
print('File is not empty')
Output :
File is empty

### Method-3 : Check if the file is empty by reading its first character in Python :

We can also check a file is empty or not by reading first character of the file. So, for that it opens the file in read only mode. Then it tries to read first character of the string. If it finds first character in the file then file exists and if it does not find the first character then the file is empty.

#Program :

def file_empty(file_name):
# open file in read mode
# Reading first character to check file is empty or not
print(EmptyOrNot)
Output :
File is empty