How to Open, Read, and Write Files in Python

Online Python Trainer for Beginners

Learn Python easily without overwhelming theory. Solve practical tasks with automatic checking, get hints in Russian, and write code directly in your browser — no installation required.

Start Course

Python File Handling Basics

File handling is a fundamental task in Python programming. The language provides a simple yet powerful interface for working with all types of files: text documents, binary data, CSV tables, JSON structures, and many other formats.

File operations are used everywhere in modern software development. Developers use them to store configuration settings, maintain system logs, create databases, record event logs, process user data, and perform many other critical tasks. Mastering file input/output makes you a more flexible and efficient programmer.

Python offers a universal mechanism for interacting with the file system through the built-in open() function and the with context manager. Additionally, the language provides a rich set of helper methods for various operations: read() for reading the entire content, readline() for line-by-line reading, readlines() for getting a list of lines, write() for writing data, writelines() for writing multiple lines, and other useful tools.

Deep Dive into the open() Function

Syntax and Key Parameters

The open() function is the primary tool for opening files in Python. You can use it to open an existing file for reading or create a new file for writing or appending data.

The basic syntax looks like this:

open(file, mode='r', encoding=None, errors=None)

Each parameter serves a specific purpose:

  • file - specifies the filename or full path to the file on the filesystem
  • mode - defines the file access mode (read, write, append)
  • encoding - sets the character encoding, defaults to None
  • errors - defines the error handling strategy for encoding issues (e.g., ignore to skip errors)

File Access Modes

Python supports various file opening modes, each designed for specific tasks:

  • 'r' - open file for reading (default mode)
  • 'w' - open for writing, overwriting the file content completely
  • 'a' - open for appending data to the end of an existing file
  • 'x' - create a new file, raising an error if it already exists
  • 'b' - binary mode for handling non-text data
  • 't' - text mode (used by default)

Basic Usage Example

file = open("notes.txt", "r", encoding="utf-8")
data = file.read()
file.close()

Note that this approach requires explicitly calling the close() method to properly release system resources.

Using the with open() Context Manager for Safe File Handling

Benefits of Using with

The with open() context manager is a safe and convenient way to work with files in Python. This approach automatically closes the file descriptor even if an exception occurs inside the code block.

with open("example.txt", "r", encoding="utf-8") as file:
    data = file.read()
    print(data)

Automatic Resource Management

This approach completely eliminates the need to manually call file.close(). This becomes especially important when working with many files, processing system logs, or implementing complex scenarios where errors might occur during execution.

Blogs

Book Recommendations