Python Append to File – Append Data to Files in Python

Introduction

When working with files in Python, there are situations where you want to add new data without deleting the existing content. For example, a logging system may continuously record events, a registration system may save new users, or an attendance application may store daily attendance records. In such cases, appending data to a file is the ideal solution.

Python provides a simple way to add data to existing files using append mode (a).

What is Python Append Files?

Python Append Files refers to the process of adding new data to the end of an existing file without removing the current content.

Python uses the append mode (a) with the open() function for this purpose.

📖
When a file is opened in append mode:
  • Existing content remains unchanged.
  • New data is added at the end of the file.
  • If the file does not exist, Python creates it automatically.
  • The file pointer starts at the end of the file.

Syntax

The basic syntax for appending data to a file is:


file = open("filename.txt", "a")
file.write("New Data")
file.close()

Explanation

  • open() opens the file.
  • “a” specifies append mode.
  • write() adds new content.
  • close() closes the file after the operation.

Understanding Append Mode

Append mode is represented by the letter “a”.


file = open("data.txt", "a")

Features:

  • Preserves existing data.
  • Adds new content at the end.
  • Creates the file if it does not exist.
  • Suitable for continuously growing files.

Difference Between Write Mode and Append Mode

Feature Write Mode (w) Append Mode (a)
Existing Content Deleted Preserved
New Data Position Beginning End of File
Creates File if Missing Yes Yes
Common Use Replace Data Add Data

Example:

Suppose the file contains:


Python 
Java

Using write mode:


file = open("data.txt", "w")
file.write("C++")
file.close()

Output:

C++

Using append mode:


file = open("data.txt", "a")
file.write("\nC++")
file.close()

Output:

Python
Java
C++

Appending Text Using write()

The write() method is the most common way to append data.

Example:


file = open("notes.txt", "a")
file.write("Learning Python\n")
file.close()

Output:

Learning Python

If the file already contains content, the new text is added after the existing data.

Appending Multiple Lines

You can append several lines using multiple write() statements.

Example:


file = open("students.txt", "a")
file.write("John\n")
file.write("Alice\n")
file.write("David\n")
file.close()

Output:

John
Alice
David

Appending Data Using writelines()

Python provides the writelines() method to append multiple lines at once.

Example:


students = [
    "Rahul\n",
    "Amit\n",
    "Priya\n"
]
file = open("students.txt", "a")
file.writelines(students)
file.close()

Output:

Rahul
Amit
Priya

Using the with Statement

The recommended approach is using the with statement.

Example:


with open("data.txt", "a") as file:
    file.write("New Record\n")

Advantages:

  • Automatically closes the file.
  • Cleaner code.
  • Prevents resource leaks.
  • Improves readability.

Appending User Input

A common use case is storing user-entered data.

Example:


name = input("Enter your name: ")
with open("users.txt", "a") as file:
    file.write(name + "\n")

Input:


Rahul

Output in file:

Rahul

Every new user is added without removing previous records.

Appending Numbers to a File

Since write() accepts strings, numbers must be converted.

Example:


score = 95
with open("scores.txt", "a") as file:
    file.write(str(score) + "\n")

Output:

95

Appending Date and Time Information

Appending is commonly used in logging systems.

Example:


from datetime import datetime
with open("log.txt", "a") as file:
    file.write(str(datetime.now()) + "\n")

Output:

2026-01-15 10:45:20.123456

Every program execution adds a new timestamp.

Example

Suppose a company wants to store employee names.


with open("employees.txt", "a") as file:
    file.write("John\n")
    file.write("Alice\n")

Output:

John
Alice
David

The previous records remain intact.

Real-life Example

Imagine you are developing a student attendance management system.

Each day, student attendance is recorded and added to a file.


student = input("Enter student name: ")
with open("attendance.txt", "a") as file:
    file.write(student + " Present\n")
print("Attendance saved.")

Input:


Amit

Output:

Attendance saved.

File Content:


Amit Present

Next student:


Priya Present

Updated File:


Amit Present 
Priya Present

Common Mistakes

1. Using Write Mode Instead of Append Mode

Incorrect:


file = open("data.txt", "w")

This removes existing content.

Correct:


file = open("data.txt", "a")

2. Forgetting Newline Characters

Incorrect:


file.write("John")
file.write("Alice")

Output:

JohnAlice

Correct:


file.write("John\n")
file.write("Alice\n")

Output:

John
Alice

3. Forgetting to Close the File

Incorrect:


file = open("data.txt", "a")
file.write("Python")

Correct:


file = open("data.txt", "a")
file.write("Python")
file.close()

Better:


with open("data.txt", "a") as file:
    file.write("Python")

4. Writing Numbers Without Conversion

Incorrect:


score = 100
file.write(score)

Output:

TypeError

Correct:


file.write(str(score))

5. Forgetting Exception Handling

Incorrect:


file = open("data.txt", "a")

Correct:


try:
    with open("data.txt", "a") as file:
        file.write("Python")

except Exception as e:


 print("Error:", e)

Best Practices for Appending Files

1. Use the with Statement


with open("data.txt", "a") as file:
    file.write("Hello")

2. Add Newlines Properly


file.write("Record\n")

3. Convert Non-String Data


file.write(str(value))

4. Handle Exceptions


try:
    pass

except Exception:


   pass

5. Use Meaningful File Names

Examples:


attendance.txt
logs.txt
transactions.txt

Conclusion

Python Append Files is an essential file-handling technique used to add new information to existing files without losing previously stored data. By using append mode (a), developers can safely preserve existing records while continuously adding new content.

Methods such as write() and writelines() make appending data simple and efficient. Combined with the with statement, Python provides a clean and reliable way to manage file operations.

Related Python Tutorials