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:

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:

Output:

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.

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.          

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:

myfile.txt

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:

Output:

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

Output:

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.

Output:

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

Output:

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.

Output:

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.

Output:

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.

src- Current file name

dst- New file name

Example-1

  • Removing the file

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

Example-2

  • 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:

Example-3

  • 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:

  • The getcwd() function

It displays the current working directory.

Example-4

  • Remove the Directrory

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

Example-5

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.