• Articles
  • Tutorials
  • Interview Questions

File Handling in Python

Tutorial Playlist

File handling in Python is an essential skill that allows programmers to read from and write to files, thus enabling data persistence. This document outlines the key concepts and operations related to file handling in Python as discussed in the video.

Python file handling operations are also known as Python I/O. It deals with two types of files. They are:

  • Text files
  • Binary files

Even though the two file types may look the same on the surface, they encode data differently.

A text file is structured as a sequence of lines and, each line of the text file consists of a sequence of characters. Termination of each line in a text file is denoted with the end of line (EOL). There are a few special characters that are used as EOL, but comma {,} and newlines are the most common ones.

Image files such as .jpg, .png, .gif, etc., and documents such as .doc, .xls, .pdf, etc., all of them constitute binary files.

Watch this video on ‘Python File Handling’:

Video Thumbnail

Introduction to File Handling

File handling refers to the process of creating, reading, updating, and deleting files. In Python, file handling is made easy through built-in functions and methods. Files can be stored on disk or a network location, and Python provides a straightforward way to interact with them.

In this tutorial of File handing in Python, we will cover the following:

Creating a File

To create a new file in Python, you can use the open() method, along with one of the given parameters:

"x" - Create - will create a file, returns an error if the file exists
"w" - Write - will create a file if it doesn’t exist
"a" - Append - will create a file if it doesn’t exist
f = open("myfile.txt", "x")

Opening a File

To open a file, the built-in Python Function open() is used. It returns an object of the file which is used along with other functions.

Syntax of the Python open function:

obj=open(file_name , mode, buffer)
or 
obj=open(file_name , mode)

Here,

  • The file_name refers to the file which we want to open.
  • The mode specifies the mode in which the file has to be opened. It can be ‘r’, which is used for opening a file only to read it in Python, or ‘w’ used for opening a file only to write into it. Similarly, ‘a’ opens a file in Python in order to append, and so on. For more access modes, refer to the table given below.
  • The buffer represents whether buffering is performed or not. If the buffer value is 0, then no buffering is performed, and when the buffer value is 1, then line buffering is performed while accessing the file.

Different modes of File Opening

  • The mode parameter can take the following values:
  • ‘r’: Read mode – Opens the file for reading. The file must exist.
  • ‘w’: Write mode – Opens the file for writing, creating the file if it does not exist. If the file exists, it overwrites the file.
  • ‘a’: Append mode – Opens the file for appending. Data written to the file is added at the end without removing existing data.
  • ‘x’: Exclusive creation – Creates a new file and opens it for writing. If the file already exists, it raises an error.
  • ‘b’: Binary mode – Used for reading or writing binary files (e.g., images).
  • ‘t’: Text mode – This is the default mode. Text files are read and written in string format.

Get 100% Hike!

Master Most in Demand Skills Now!

Writing to a File

To write data to a file, you can use the following methods:

  • write(string): Writes the specified string to the file.
  • writelines(list): Writes a list of strings to the file.

Example of writing to a file:

with open(‘file.txt’, ‘w’) as file:

file.write("Hello, World!\n")

Reading from a File

The read() method is used to read data from a file.

Syntax of the Python read function:

File_object.read(data)
Example:
j=open(“intellipaat.txt”,”r”)
k=j.read()
print(k)

Output:

Hello Intellipaat

Closing a File

It is essential to close a file after its operations are complete to free up system resources. This can be done using the close() method. However, using the with statement automatically handles closing the file.

Example:

file = open('file.txt', 'r')
# Perform file operations
file.close() # Close the file

Deleting a File

To delete a file in Python, you have to import the module OS, and use the os.remove() function.

import os
os.remove("file1.txt")

Checking if a File Exists

When trying to delete a file, it is a good idea to check if the file exists or not, to avoid getting an error.

import os
if os.path.exists("demofile.txt"):
  os.remove("demofile.txt")
else:
  print("The file does not exist")

Exception Handling in File Operations

When dealing with file operations, it is crucial to handle exceptions to avoid runtime errors. This
can be done using try and except blocks.

Example:

try:
with open('file.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("The file does not exist.")

Others Methods of File Handling in Python

There are multiple other file handling methods available in Python which are as follows:

a. rename(): This is used to rename a file.

import os
os.rename(existing file_name, new file_name)

b. remove(): This method is used to delete a file in Python.

import os
os.remove(“abc.txt”)

c. chdir(): This method is used to change the current directory.

import os
os.chdir(“new directory path”)

d. mkdir(): This method is used to create a new directory.

import os
os.mkdir(“new directory path “)

e. rmdir(): This method is used to remove a directory.

import os
os.rmdir(“new directory path”)

f. getcwd(): This method is used to show the current working directory.

import os
print(os.getcwd())

Become a Python Expert

Other Methods of File Handling in Python

Following are the other common methods of file handling in Python, along with their descriptions

 

Method Description
close() To close an open file. It has no effect if the file is already closed
flush() To flush the write buffer of the file stream
read(n) To read at most n characters from a file. Remember that it reads till end of file if it is negative or none
readline(n=-1) To read and return one line from a file. Remember that it reads at most n bytes, if specified
readlines(n=-1) To read and return a list of lines from a file. Remember that it reads at most n bytes/characters if specified
seek(offset,from=SEEK_SET) It changes the file position to offset bytes, in reference to  (start, current, or end)
tell() It returns the current file location
writable() It returns true if the file stream can be written to
write(s) To write string s into a file and return the number of characters written
writelines(lines) To write a list of lines into a file

File handling in Python is a powerful feature that enables developers to manage data effectively. By understanding the various modes of file operations, as well as how to read, write, and delete files, you can create robust applications that interact with file systems efficiently. This tutorial has covered the fundamental concepts of file handling, but there are many more advanced techniques and libraries available in Python for specific use cases. Always remember to handle exceptions appropriately to ensure smooth execution of your file operations.

With this, we come to the end of this module on Python Tutorial.

If you want to know why Python is the most preferred language for data science, you can go through this on Python Data Science tutorial.

Course Schedule

Name Date Details
Python Course 16 Nov 2024(Sat-Sun) Weekend Batch View Details
23 Nov 2024(Sat-Sun) Weekend Batch
30 Nov 2024(Sat-Sun) Weekend Batch

About the Author

Senior Consultant Analytics & Data Science

Presenting Sahil Mattoo, a Senior Consultant Analytics & Data Science at Eli Lilly and Company is an accomplished professional with 14 years of experience across data science, analytics, and technical leadership domains, demonstrates a remarkable ability to drive business insights. Sahil holds a Post Graduate Program in Business Analytics and Business Intelligence from Great Lakes Institute of Management.