DEV Community

Akash Singh
Akash Singh

Posted on

Basic Python: 12. Python File Handling

In the realm of programming, files serve as a means to store, retrieve, and manipulate data. Python's file handling capabilities provide developers with the tools they need to work with various types of files. In this blog post, we'll delve into the world of Python file handling, exploring how to read from and write to files, and providing real-world examples along the way.

Table of Contents

  1. Introduction to File Handling
  2. Opening and Closing Files
  3. Reading from Files
  4. Writing to Files
  5. Appending to Files
  6. File Methods and Attributes
  7. Working with Modes
  8. Working with Context Managers
  9. Exception Handling for File Operations
  10. Working with Binary Files
  11. Working with CSV Files
  12. Working with JSON Files
  13. Best Practices for File Handling

1. Introduction to File Handling

File handling in Python refers to the ability to interact with files stored on the computer's storage system. This is crucial for tasks like reading data from configuration files, processing large datasets, or storing program outputs.

2. Opening and Closing Files

Before you can read from or write to a file, you need to open it. Python provides the open() function for this purpose:

file = open("example.txt", "r")  # Opens the file in read mode
Enter fullscreen mode Exit fullscreen mode

After working with the file, it's important to close it using the close() method:

file.close()
Enter fullscreen mode Exit fullscreen mode

3. Reading from Files

You can read the content of a file using methods like read(), readline(), or readlines():

file = open("example.txt", "r")
content = file.read()
print(content)
file.close()
Enter fullscreen mode Exit fullscreen mode

4. Writing to Files

To write content to a file, open it in write mode ("w") and use the write() method:

file = open("output.txt", "w")
file.write("Hello, world!")
file.close()
Enter fullscreen mode Exit fullscreen mode

5. Appending to Files

To add content to an existing file without overwriting it, open the file in append mode ("a"):

file = open("output.txt", "a")
file.write("\nAppending new content.")
file.close()
Enter fullscreen mode Exit fullscreen mode

6. File Methods and Attributes

Python provides various methods and attributes for file objects, including read(), write(), seek(), tell(), and more.

7. Working with Modes

Python provides different modes for file handling, including:

  • "r": Read mode (default)
  • "w": Write mode (creates a new file or truncates an existing file)
  • "a": Append mode (appends to an existing file)
  • "b": Binary mode
  • "x": Exclusive creation mode

8. Working with Context Managers

Python's with statement simplifies file handling by automatically closing files when you're done with them:

with open("example.txt", "r") as file:
    content = file.read()
    print(content)
# File automatically closed outside the 'with' block
Enter fullscreen mode Exit fullscreen mode

9. Exception Handling for File Operations

File operations can lead to errors, such as when a file is not found or when you lack permissions. Proper exception handling is important:

try:
    with open("missing_file.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("File not found.")
Enter fullscreen mode Exit fullscreen mode

10. Working with Binary Files

Binary files (e.g., images, videos) can be read and written using the binary mode ("rb" and "wb").

with open("image.jpg", "rb") as binary_file:
    binary_data = binary_file.read()

with open("copy_image.jpg", "wb") as copy_file:
    copy_file.write(binary_data)
Enter fullscreen mode Exit fullscreen mode

11. Working with CSV Files

CSV (Comma-Separated Values) files are widely used for storing tabular data. Python's csv module simplifies reading and writing CSV files.

import csv

with open("data.csv", "r") as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        print(row)
Enter fullscreen mode Exit fullscreen mode

12. Working with JSON Files

JSON (JavaScript Object Notation) is a popular format for data interchange. Python's json module makes it easy to work with JSON files.

import json

data = {"name": "Akash", "age": 23}
with open("data.json", "w") as file:
    json.dump(data, file)
Enter fullscreen mode Exit fullscreen mode

13. Best Practices for File Handling

  • Use context managers (with statements) to ensure proper file closure.
  • Handle exceptions to address potential errors during file operations.
  • Avoid hardcoding file paths; use variables or configuration files.
  • Clearly document your file handling operations within your code.
  • Be cautious with file permissions, especially when writing or appending.

Top comments (0)