×

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 Set Methods

[et_pb_section][et_pb_row][et_pb_column type="4_4"][et_pb_text] Python Set Methods A set is a collection which is unordered and unindexed. Python has a set of built-in methods that you can use on sets. Methods ...

4 minutes read.

Nested Tuple in Python

If you are a Python learner, this page contains all the information that helps you know about nested tuple and how to access it in python. What is a Tuple? Multiple items...

4 minutes read.

Number Pattern Programs in Python

Learning Python is very easy, and it understands in better way compared to other programming languages. One of the many reasons why it has emerged as the most widely used...

4 minutes read.

Run exec python from PHP

PHP (which is a recursive abbreviation for PHP Hypertext Preprocessor) is one of the most broadly involved web improvement innovations on the planet. PHP code utilized for creating sites and...

4 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 Deep Copy and Shallow Copy

Assignment statements in Python create bindings between a target and an object, not copies of them. The = operator only makes a new variable that shares the reference to the...

3 minutes read.

What are the Purposes of Python?

Python is a high-level programming language that is simple to use and easy to write, and Python is a beginner-friendly programming language. A beginner often prefers to start with Python...

6 minutes read.

Python Generator

Python Generator: A Function is said to be a Python Generator that produces or generates a sequence of results. A Python Generator maintains its native state to work so that...

6 minutes read.

Artificial intelligence mini projects ideas in python

Artificial intelligence "The human race started from the invention of the wheel", and today we are about to advance to the Industrial level 4.0, where machines can work, talk, think and...

6 minutes read.

Check whether dir is empty or not in python

Python: Check if a directory is empty In this tutorial, we will study how to check whether the director (dir) is empty or not in the python programming language. First of...

3 minutes read.

Python Num2words

Python: Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It is said...

3 minutes read.

Python And Operator

Python's and operator takes two operands that can be either object, Boolean expressions, or both. And operator creates more complex expressions using those operands. Conditions are the common name for...

8 minutes read.

Classes & Objects in Python

Classes and Objects are used in most modern programming languages, mainly in Object-oriented Programming languages. What is meant by Object Oriented Programming language? Usage of objects and their components in order to...

7 minutes read.

apply() function in python

Pandas: Pandas is a library in python. It is an open source package in python. Pandas in python are used for data cleaning and data analysis. Data frame mainly consists of...

3 minutes read.

Python Syntax Error Invalid Syntax

Python is renowned for its simple and direct syntax. However, we might come across some things that Python doesn't allow if we are learning Python for the very first time or if...

14 minutes read.

Accessing Key-value in Dictionary in Python

A Python word reference is an assortment of key-esteem matches where each key is related to worth. Worth in the key-esteem pair can be a number, a string, a rundown,...

5 minutes read.

Decision Tree in Python

Decision Tree is one of the most essential algorithms in the area of machine learning for classification and regression. But let us first talk about the lifespan of every machine learning...

12 minutes read.

File Explorer using Tkinter in Python

File Explorer: Users can control folders and files on a device using an application known as a file manager or file explorer. Customers can access, edit, copy, delete, and start moving files...

3 minutes read.

Python email utils

Python is a popular programming language in this growing world. There are many resources to learn python online without spending a single penny. In this article, we will talk about a...

4 minutes read.

Matrix List Comprehension in Python

Introduction One of Python's most beautiful features is list comprehension. Iterating over an iterable object to create lists is a clever and succinct method. Nested List or matrix list Comprehensions, which...

6 minutes read.