Skip to Content
PythonFile HandlingBasic File Handling

The Core of File Handling: Basic Operations

At the heart of file handling are three fundamental actions: opening a file, performing an operation (reading or writing), and closing the file. Python provides a simple and robust way to manage this entire lifecycle.


The open() Function: Your Gateway to Files

The built-in open() function is the starting point for any file interaction. It creates a file object (also known as a file handle), which provides all the methods you need to interact with the file’s contents.

The two most important arguments to open() are the file path and the mode:

file_object = open('path/to/your/file.txt', 'mode')
  • File Path: A text string that specifies the location of the file. It can be a simple filename (if the file is in the same folder as your script) or a complete path.
  • Mode: A string that specifies the purpose for which you are opening the file (for example, to read, to write, etc.). This is a crucial parameter that dictates what you are allowed to do with the file.

The Golden Rule: Always Close Your Files

When your program opens a file, it locks that file at the operating system level. If you forget to close it, the resource may not be released, which can lead to memory leaks, data corruption, or prevent other programs from accessing the file.

1. The Old Way (Manual close())

You can manually call the .close() method on the file object. However, this approach is risky. If an error occurs while you are processing the file, your .close() call might never be reached!


Example

Output:


2. The Modern, Safe Way: The with Statement

The with statement provides a much safer and cleaner way to work with files. It creates a context that automatically closes the file for you, even if errors occur within the block. This is the universally recommended approach in Python.

How the with Statement Works

  1. open() is called, and a file object is created.
  2. The file object is assigned to the variable after the as keyword.
  3. The code inside the indented with block is executed.
  4. Once the block is exited (normally or due to a crash), Python automatically calls the .close() method.

Let us see this in action:


Example

Output:


Best Practice: Always use the with open(...) as ...: syntax for all file operations. It is safer, more readable, and guarantees that your files are closed properly every single time.


Understanding File Modes

The mode argument in open() is critical. It defines exactly what you are allowed to do with the file:

Read Mode: 'r'

  • Action: Opens a file for reading only. This is the default mode if you do not specify one.
  • Behavior: The file pointer is placed at the very beginning of the file.
  • Error: If the file does not exist, it raises a FileNotFoundError.

Example

Output:



Modifier Modes: Binary and Updating

You can combine the primary modes with modifiers for advanced control:

Binary Mode: 'b'

  • Modifier: Add 'b' to a primary mode (for example: 'rb', 'wb', 'ab').
  • Action: Opens the file in binary mode.
  • Behavior: Data is read and written as raw bytes objects instead of str (text). There is no encoding or decoding.
  • Use Case: Essential for non-text files like images, audio, or zip archives.

Example

Output:


Last updated on