×

Python File Handling

What is the file?

The file is a collection of data in a single unit. It is used to store information in the non-volatile memory such as hard-disk.

Computer programs generally run on the RAM (Random Access Memory) which is a volatile memory. After termination of the program, all data gets lost, so we need to store data into permanent storage or local file.

Hence, in Python, the file handling can be done by the following order:

  • Open a file
  • Read or write (perform operation)
  • Close the file

Open a file

Python provides a built-in function open () which is used to open a file. This function will return a file object. The open () is used along with the two arguments  to return file object. The first argument accepts file name, and the second accepts the file mode. The syntax is the following:

fs = open (filename, access mode)

filename- This argument contains the name of the file which we want to open.

access_mode - This argument determines the mode in which file to be open such as read, write, append, etc. This argument is not mandatory, the file will open in r read mode by default if this argument is not passed.

Here is a table of different file modes of opening files:

Mode Description
r This mode opens a file in read-only mode. The file pointer is positioned at the beginning of the file.
w This mode opens a file in write mode. If the file does not exist, creates a new file.
a This mode opens a file for appending. The file pointer is positioned at the end of the file. If a file does not exist, then it creates a new file in write mode.
rb This opens a file for read in binary mode.
wb This opens a file for write in binary mode. If the file does not exist, creates a new file.
ab This opens a file for append in binary format. The file pointer is at the end of the file if the file exists. If the file does not exist, it creates a new file for writing.
r+ This opens a file in both reading and writing.
w+ This opens a file in both write and reading
a+ This opens a file in both appending and reading
rb+ This opens a file for both reading and writing in binary format. The file pointer is located at the beginning of the file.
wb+ This opens a file for both writing and reading in binary format. The file pointer is located at the beginning of the file.
ab+ This opens a file for both appending and writing in binary format. The file pointer is located at the beginning of the file.

Let’s consider the following example:

fs = open('newfile.txt','w')

if fs:
    print('file opened successfully')

Output:

file opened successfully

Closing a file

We need to close a file properly after completion of the file operation. Python provides a close () method to close a file. The close () function free up the resources that were tied with the file. Python provides the garbage collector to clean, but it is good practice to use close () to close the file properly.

fs = open('myfile.txt','w')
#perform file operation
fs.close()

Sometimes we forget to close a file, it may cause an error.  The best way to close a file is by using the with statement.          

with open('myfile.txt','w'):

    # perform file operation

The with statement will close the file internally. We don’t need to call it explicitly.

How to write into file

Python provides write () which is used to write into the file. We need to open it in write ‘w’ or ‘a’ mode. Consider the following example:

# open the myfile.txt in write mode. Creates a new file if no such file exists.
fs = open('myfile.txt','w')
#writing the content to the file
fs.write("We are writing this line into the file")
fs.write("Python is the most popular programming language")
#closing the opened file   
fs.close() 

myfile.txt

We are writing this line into the file. Python is the most popular programming language.

How to read the file

Python provides read () to read file content. The read () method reads a string from the file. The syntax is the following:

Fileobj.read(count)

The count argument accepts the positive number and counts the string. For example:

fs = open('myfile.txt','r')
z=fs.read(10)
y = type(z)
print(z)

Output:

We are wri

Python provides a readline () function that read the file line by line. It reads a file till the newline.

fs = open('myfile.txt','r+')
z = fs.readline()
print(z)

Output:

Hi, there i am the best Hi, there i am the best

There is another method readlines () which returns a list of the lines of the entire file. This returns empty value when end of file is reached. You can execute both methods and observe the difference.

fs = open ('myfile.txt','r+')
z = fs.readlines()
print(z)

Output:

['Hi, there i am the best Hi, there i am the best ']

Creating a new file

The following access mode is used with open () to create a new file with the specified name.

x – It is used to create a new file with a specified name. If the file exists with the same name, then it will show an error.

a – It appends the file content if the file already exists. It will create a new file if no such file exists.

w- It creates new file with specified name if no such file exists. If the file exists, then it will overwrite the file content.

Example-1

fs = open('myname.txt','x')
print(fs) # returns the file object

if fs:
    print("File created
successfully")

Output:

<_io.TextIOWrapper name='myname.txt' mode='x' encoding='cp1252'>
 File created successfully 

File Pointer Positions

The tell() method allows us to know the current position of pointer within the file; which means , the next read or write will occur at that many bytes from the beginning of the file.

fs = open("myfile.txt", "r")
# initially the filepointer is at 0
print("The file pointer is at byte :", fs.tell())
# reading the content of the file
content = fs.read()
# after the read operation file pointer modifies. tell() returns the location of the fileptr.
print("After reading, the file pointer is at:", fs.tell())

Output:

The file pointer is at byte : 0
After reading, the file pointer is at: 48 

Modification in the pointer position

Python provides the seek (offset [, from]) method to perform modification in the current file position. It consists of two arguments which are the following.

offset  -  It indicates the number of bytes to be moved.

from -  It specifies the reference position from where the bytes are to be moved.

Note -  The from is set to 0, it means use the beginning of the file as the reference position. If it is set to 1 which means use the current position as the reference position and if it is set to 2 then the end of the file is used as the reference position.

fs = open("myfile.txt", "r")
# initially the filepointer is at 0
print("The
file pointer is at byte :", fs.tell())
#Modification on the cursor position
print("Changing
the pointer position:",fs.seek(10))
# after the read operation file pointer modifies. tell() returns
the location of the fileptr.
print("After
reading, the file pointer is at:", fs.tell())

Output:

The file pointer is at byte : 0
Changing the pointer position: 10
After reading, the file pointer is at: 10 

Python os module

The os module provides various functions for interacting with the operating system such as renaming, deleting, etc.

Some of the module functions are the following:

  • Renaming the file

The rename () function is used to rename the specified file to a new name. The syntax is given below.

rename(src,dst)

src- Current file name

dst- New file name

Example-1

import os
#Renaming the file myfile to newfile
os.rename('myfile.txt','newfile.txt')
  • Removing the file

The remove () function is used to remove the specified file. The syntax is given below

remove(filename)

Example-2

import os
#Removing a file
os.remove('newfile')
  • Creating a new directory

The os module provides mkdir () function, which is used to create the directories in the current directory.  The syntax is given below:

mkdir (directory_name) 

Example-3

import os;    
 #creating a new directory with the new name  
 os.mkdir("new_directrory")   
  • Changing the current working directory

The chdir () method is used to change the current working directory to a specified directory. The syntax is given below:

chdir(“new_dir”)
  • The getcwd() function

It displays the current working directory.

getcwd()

Example-4

import os

 # Changing a directory to "/home/newdir"
 os.chdir("/User/newdir")
  • Remove the Directrory

The os module provides rmdir () function to remove a directory which is passed as an argument.

rmdir(‘dirname’)

Example-5

import os

# This would remove "/tmp/test"  directory.
os.rmdir("/home/newdir”)

The file related function

There are various file functions which are given below.

Sr. Function Description
1 File.open() It is used to open a file and return file object
2 File.close() It is used to close the opened file. Once a file closed, can’t be read and write.
3 File.read() It is used to read a file.
4 File.seek(offset[,from) It is used to modify the file pointer position.
5 File.tell() It returns the current position of the pointer
6 File.readline([size]) It reads lines from the file
7 File.readlines(sizehint) It returns a list containing all lines of the file.
8 File.readable() It returns the Boolean True if the file is readable.
9 File.writable() It returns the Boolean True if the file is writable.
10 File.seekable It returns the Boolean True if the file is seekable.
11 File.flush() It flushes the internal buffer.
12 File.next() It returns the next line from the file.
13 File.write(str) It is used to write specified string to the file.

Related Topics

Python program to print array element present at even position

Python program to print array element present at even position In this program, we'll see a Python program that prints the elements of an array that are in even positions. We...

1 minute read.

Compound Interest GUI Calculator using PyQt5 in Python

GUI: One of the most significant factors that increased the usability of computer and digital technologies for common, less tech-savvy users is likely the development and widespread adoption of GUIs. GUIs...

6 minutes read.

Python Banner

Python: Python is an interactive and more accessible language than any other programming language. The python programming language uses a variety of libraries to perform the operations in a faster way....

3 minutes read.

Genetic Algorithm in python

Python : Python is an object oriented programming language which is highly interpreted and is highly interactive. Python was created by Guido van Rossum in the year 1985 – 1990 .The source...

4 minutes read.

Python hash() function

Python hash() function The hash() function in Python returns the hash value of the object (if it has one).  Syntax hash(object) Parameter obj : This parameter represents the object which we need to convert into hash. Return This...

1 minute read.

Python Arithmetic Operators

An arithmetic operator is a mathematical operator that is used to operate on two operands. Based on the operator used, action is performed on the operands, and output is delivered. Following...

3 minutes read.

Python ltrim() function

Python ltrim() function The ltrim() function in PHP removes whitespace or other predefined characters from the beginning or left side of a string. The related functions are as follows: rtrim() – This function is used to...

1 minute read.

Python Uses

Python has advanced in recent years to rank among the programming languages that are most often used globally. It is utilized in everything, including machine learning, software testing, and website...

4 minutes read.

Python Indentation

Overview The spaces at the start of a code line are known as an indentation in Python programming. Indentation is only used for readability in other programming languages like C, C++,...

8 minutes read.

Difference between Input() and raw_input() functions in Python

There are two input functions in Python that are used for taking input are given below: raw_input()input() What is raw_input() Function? raw_input() function is a built-in function in Python. It is used to...

6 minutes read.

Python type() Function

Python type() Function The type() function in Python returns the type of an object. The return value is a type object and generally the same object as returned by object.__class__. Syntax class type(object)      ...

1 minute read.

Best Database in Python

In this tutorial, Firstly, we will understand what the term database means. Further, we will see the various databases supported in Python and when to use which one. Further, we...

7 minutes read.

Python Sending Email

Python Sending Email Simple Mail Transfer Protocol (SMTP) is used to handle sending e-mail and routing e-mail between mail servers. When we send an email either form a web-application or from a local software...

3 minutes read.

Python whois

What is whois? Whois is a protocol used to identify the owner of the registered domain name. It is a querying database that is used to record the registered users. WHOIS is...

4 minutes read.

Writing to a CSV file in Python

Python is an Object-Oriented high-level language. Python has an English-like syntax, which is very easy to read and write codes. Python is an interpreted language which means that it uses...

6 minutes read.

Arithmetic Expressions in Python

What is Python Expression? Expressions are collections of operands and operators. Python expressions are translated by the Python interpreter into some value or outcome. In Python, an expression is made up...

13 minutes read.

Python issubclass() Function

Python issubclass() Function The issubclass() function in Python returns a boolean value ‘True’ if the given object is a subclass of classinfo, else it returns False. Syntax issubclass(class, classinfo) Parameter class: It is a required parameter which represents a tuple...

1 minute read.

Python K-Means Clustering

K-Means Clustering is a basic yet incredible calculation in information scienceThere are a plenty of true utilizations of K-Means clustering (a couple of which we will cover here)This far reaching...

25 minutes read.

How to Reverse a number in Python?

In Python, conditional statements can be combined with the list() method, slice() method, recursion() method, and other predefined techniques to generate reverse logical functions. The reverse() method is the most...

7 minutes read.

How to Plot Graphs Using Python?

In this article, we are going to learn about how to plot different types of graphs using Python. We are going to use different approaches for every type of graph....

3 minutes read.