Learning Python- Intermediate course: Day 37, File handling in Python

Today we cover File-handling in Python in a lightning fast speed

Many times we need to save data into files for long-term usage. Today we will learn how to write data into a file and retrieve it.

Opening a file

Python has two types of files, text and binary. But we will now learn only about text files, which are quite popular.

How will the interpreter know when to end a line? Each line in a file has the EOL terminating character (example comma or newline character) which the interpreter reads and processes a new line..

We can open a file into four modes

  • "r" Reading mode
  • "w" Writing mode
  • "a" Appending mode
  • "r+" Both reading and writing

If not passed, then Python will assume it to be “ r ” by default.

Syntax for opening a file We can open a file using the syntax

file = open('myfile.txt', 'r') # Reading mode
file = open('myfile.txt', 'a') # Writing mode
file = open('myfile.txt', 'w') # Appending mode
file = open('myfile.txt', 'r+') # Both reading and writing

Note than the file name is case sensitive. So myfile.txt is not equal to Myfile.txt

Reading from a file

First we make a file named....say myfile.txt

A Quick brown fox jumps over the lazy dog
Welcome to PYTHON Programming

In case the file doesn't exist, we get this error-

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    file = open("myfile.txt", "r") 
FileNotFoundError: [Errno 2] No such file or directory: 'myfile.txt'

We can read the contents of the file using the file.read() method

file = open("myfile.txt", "r") 
print (file.read())

OUTPUT

A Quick brown fox jumps over the lazy dog
Welcome to PYTHON Programming

We can also return a specific number of characters by adding parameters to the read method. For example

file = open("myfile.txt", "r") 
print (file.read(7))

OUTPUT

A Quick

The value returned is a string

file = open("myfile.txt", "r") 
print (type(file.read(7)))
<class 'str'>

We can access the file line by line using the for in loop

file = open("myfile.txt", "r") 
for temp in file:
    print (temp)

This syntax prints out each element of the file in lines.

A Quick brown fox jumps over the lazy dog

Welcome to PYTHON Programming

Writing into a file

When we write into a file, we do not need to create one. If the file in which we want to write doesn't exist, it gets automatically created.

file = open('myfile.txt','w')
file.write("A Quick brown fox jumps over the lazy dog.")
file.write("Welcome to PYTHON Programming")
file.close()

OUTPUT (myfile.txt)

A Quick brown fox jumps over the lazy dog.Welcome to PYTHON Programming

The close() command terminates all the resources in use and frees the system of this particular program.

If we want the text into two separate lines, we can use the newline \n symbol.

file = open('myfile.txt','w')
file.write("A Quick brown fox jumps over the lazy dog.")
file.write("\n")
file.write("Welcome to PYTHON Programming")
file.close()

OUTPUT- (myfile.txt)

A Quick brown fox jumps over the lazy dog.
Welcome to PYTHON Programming

The write method overrides the file each and every time the file is opened function is called. To avoid this, we can use the append mode to add to the file.

file = open('myfile.txt','a')
file.write("A Quick brown fox jumps over the lazy dog.")
file.write("\n")
file.write("Welcome to PYTHON Programming")
file.close()
A Quick brown fox jumps over the lazy dog.
Welcome to PYTHON ProgrammingA Quick brown fox jumps over the lazy dog.
Welcome to PYTHON Programming

So friends we have covered file handling today. From next parts onwards we will cover object oriented programming.

17