Introduction
File handling is an essential component of programming. Handling files is made simpler by Python's built-in functions for generating, opening, and closing files.
Python also enables performing several file operations, such as reading, writing, and appending information, while files are open.
Prerequisites
- Python 3 is installed and configured.
- A code editor to write code or an IDE (Integrated Development Environment).
- Access to a terminal to execute the code (or run directly in an IDE).
- A text file for the examples.
Opening Files in Python
The basic function for handling files in Python is the open()
method. The general syntax is:
file_object = open('file_name', 'mode')
For file handling, the open()
function requires two basic parameters:
- The
file_name
presumes the file is in the current working directory and includes the file extension. Provide the absolute or relative path if the file is located elsewhere. - The
mode
specifies the file opening method and is an optional parameter. The many options are listed in the table below:
Mode | Description |
---|---|
'r' | Reads from a file and, if the file is not present, returns an error (default). |
'w' | Writes to a file and creates the file if it does not exist or overwrites an existing file. |
'x' | Exclusive creation that is unsuccessful if the file is already present. |
'a' | Appends to a file, creating it if it does not already exist, or overwriting an existing file. |
'b' | Binary mode. Use this mode for non-textual files, such as images.` |
't' | Text mode. Use only for textual files (default). |
'+' | Activates read and write methods. |
The mode must have precisely one create(x
)/read(r
)/write(w
)/append(a
) method, at most one +
. Text files are read using 'rt'
when the mode is omitted.
The operations of each mode when it is invoked are described in the table that follows:
Behavior | Modes |
---|---|
Read | r, r+, w+, a+, x+ |
Write | r+, w, w+, a, a+, x+` |
Create | w, w+, a, a+, x, x+ |
Pointer Position Start | r, r+, w, w+, x, x+ |
Pointer Position End | a, a+ |
Truncate (clear contents) | w, w+` |
Must Exist | r, r+ |
Must Not Exist | x, x+ |
Read Mode
Python's read mode opens an existing file for reading when the pointer is at the beginning of the file.
In order to read a text file in Python, load the file using the open()
function:
f = open("<file name>")
The default mode is read text, or 'rt'
Therefore, the following method is the same as the default:
f = open("<file name>", "rt")
Use the following to read files in binary mode:
f = open("<file name>", "rb")
To open a file in read-write mode, add +
:
f = open("<file name>", "r+") # Textual read and write
f = open("<file name>", "rt+") # Same as above
f = open("<file name>", "rb+") # Binary read and write
The function always returns a file object, and the characteristics vary depending on the selected mode.
Write Mode
When in write mode, a file is created for writing content, and the pointer is moved to the beginning. If the file already exists, write truncates (clears) all existing data in it.
To open a file for writing information, use the following line:
f = open("<file name>", "w")
Since the default mode is text, the below line is equivalent to the default:
f = open("<file name>", "wt")
Open the file with the below line to write in a binary mode:
f = open("<file name>", "wb")
To allow reading the file, add +
:
f = open("<file name>", "w+") # Textual write and read
f = open("<file name>", "wt+") # Same as above
f = open("<file name>", "wb+") # Binary write and read
The open()
function returns a file object whose details are determined by the modes chosen.
Append Mode
In the append mode, information is added to an existing file, and the pointer is placed at the end. In the event that a file is missing, append mode creates one.
Use one of the following lines to open a file in append mode:
f = open("<file name>", "a") # Text append
f = open("<file name>", "at") # Same as above
f = open("<file name>", "ab") # Binary append
Add the +
sign to enable the read functionality.
Create mode (also known as exclusive create) places the pointer at the beginning of the file and only creates a file if one does not already exist.
To open a file in create mode, use one of the below lines:
f = open("<file name>", "x") # Text create
f = open("<file name>", "xt") # Same as above
f = open("<file name>;", "xb") # Binary create
To include functionality to any of the above lines, add the +
sign to the mode.
Reading Files in Python
Python provides many ways to read the contents of a file after importing it into an object.
Call the read()
method on the file object and output the result. For instance:
f = open("file.txt")
print(f.read(),end="")
print()
function. Add the end=""
option to print()
in order to get rid of the blank line.The code prints the contents of the text file.
Read Parts of the File
To read only the given number of characters, pass a number to the read()
function:
f = open("file.txt")
print(f.read(5))
The first five characters of the file are printed in the output.
If you want to print just the file's first line, you can do it by using the readline()
method:
f = open("file.txt")
print(f.readline())
To print the given number of characters without exceeding the first line, add an integer to the readline()
function.
Read Lines
A for
loop is used to read lines and iterate through the contents of a file:
f = open("file.txt")
for line in f:
print(line, end="")
If you want, you can also use the readlines()
method on the file object:
f = open("file.txt")
print(f.readlines())
The function returns a list of the file stream's lines.
To control the number of lines, add an integer to the readlines()
function. For instance:
f = open("file.txt")
print(f.readlines(15))
The character number is represented by the integer, and the function returns the line where the character ends, together with the previous lines.
Close Files
A file is open until the close()
method is used. To prevent unpredictable file behavior and corrupted files, it is a good idea to close any open files.
Use the close()
method on the file object to close a file:
f.close()
Alternatively, you can use the with
statement to ensure that a file closes. For instance:
with open("<file name>"):
file_contents = f.read()
# Additional code here
The with
statement closes the file automatically.
Deleting Files in Python
In order to remove files in Python, you must establish communication with the operating system. Import the os
library and delete the following file:
import os
os.remove("file.txt")
The file is no longer accessible. Python generates an error if the file does not exist.
Python File Methods
When working with file objects, Python provides a number of additional functions. There is a table below that lists all the processes that are available and what they perform.
Method | Description |
---|---|
close() | Flushes and closes the file object. |
detach() | Separates buffer from text stream and returns the buffer. |
fileno() | Returns the file's descriptor if available. |
flush() | Flushes the write buffer. Not available for read-only objects. |
isatty() | Checks if a file stream is interactive. |
read( |
Read |
readable() | Checks if an object is readable. |
readline( |
Reads from the object until a newline or end of the file. |
readlines( |
Returns a list of lines from the file object, where |
seek( |
Changes the pointer position to |
tell() | Prints the current stream position. |
truncate( |
Resizes the file stream to |
write( |
Writes |
writable() | Checks whether the file object allows writing. |
writelines(
|
Writes a
|
Conclusion
After following this tutorial, you should be able to handle files in Python. To work with additional file types, try using a Python library like Pandas.
If you have any queries, please leave a comment below and we’ll be happy to respond to them.