How do you append to a file with Python?

Appending content to a file is a common task in Python programming. Whether you need to log data, store user inputs, or update configuration files, appending allows you to add new information without overwriting existing content. This article explores various methods to append data to files in Python with practical examples.

Basic File Append Syntax

To append to a file, use the open() function with mode 'a' (append mode) ?

# Basic syntax
file = open('filename.txt', 'a')
file.write('content to append')
file.close()

Appending a Single Line

Here's how to append a single line of text to an existing file ?

# Create initial file content
with open('myfile.txt', 'w') as f:
    f.write('This is a test file')

# Append a single line
file = open('myfile.txt', 'a')
file.write('\nThis is a new line of text.')
file.close()

# Read and display the updated file
with open('myfile.txt', 'r') as f:
    print(f.read())
This is a test file
This is a new line of text.

Appending Multiple Lines

You can append multiple lines using a loop to process each line individually ?

# Create initial file content
with open('myfile.txt', 'w') as f:
    f.write('This is a test file\n')

# Open file in append mode
file = open('myfile.txt', 'a')

# Create a list of lines to append
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']

# Append each line to the file
for line in lines:
    file.write(line)

file.close()

# Read and display the updated file
with open('myfile.txt', 'r') as f:
    print(f.read())
This is a test file
Line 1
Line 2
Line 3

Using Context Managers (Recommended)

The with statement automatically handles file closing, making it the preferred approach ?

# Create initial file
with open('myfile.txt', 'w') as f:
    f.write('Initial content\n')

# Append using context manager
with open('myfile.txt', 'a') as f:
    f.write('Appended line 1\n')
    f.write('Appended line 2\n')

# Read and display
with open('myfile.txt', 'r') as f:
    print(f.read())
Initial content
Appended line 1
Appended line 2

Appending Structured Data

You can append lists and other data structures by converting them to strings ?

# Create initial file
with open('data.txt', 'w') as f:
    f.write('User Data:\n')

# Append structured data
with open('data.txt', 'a') as f:
    user_data = ['Jane', 'Doe', '25', 'jane.doe@example.com']
    
    for item in user_data:
        f.write(f"{item}\n")

# Read and display
with open('data.txt', 'r') as f:
    print(f.read())
User Data:
Jane
Doe
25
jane.doe@example.com

Appending JSON Data

For JSON data, use the json module to properly format the data ?

import json

# Create initial empty JSON file
with open('data.json', 'w') as f:
    f.write('')

# Append JSON data
with open('data.json', 'a') as f:
    data = {'name': 'Jane Doe', 'age': 25, 'email': 'jane.doe@example.com'}
    json.dump(data, f)
    f.write('\n')  # Add newline for readability

# Read and display
with open('data.json', 'r') as f:
    print(f.read())
{"name": "Jane Doe", "age": 25, "email": "jane.doe@example.com"}

Comparison of Append Methods

Method Pros Cons Best For
open() + close() Simple, direct Manual resource management Quick scripts
with statement Automatic cleanup, safer Slightly more syntax Production code
json.dump() Handles JSON formatting JSON-specific only Structured data

Conclusion

Use with open('file', 'a') for safe file appending as it automatically handles file closing. The append mode preserves existing content while adding new data at the end of the file.

Updated on: 2026-03-24T17:20:43+05:30

17K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements