0Pricing
Python Academy · Lesson

Writing and Appending to Files

Write new data and append to existing files safely.

Writing and Appending to Files is a free Python Academy lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Python Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Introduction

Writing and appending to files lets your programs persist data between runs.

Write Mode 'w'

open('out.txt', 'w') creates the file (or truncates if it exists). f.write('Hello') writes the string.
# with open('out.txt', 'w') as f:
#     f.write('Hello, World!')
print('write mode demo')

writelines()

f.writelines(list_of_strings) writes each string in the list. It does NOT add newlines automatically.
lines = ['line1\n', 'line2\n']
# with open('out.txt', 'w') as f:
#     f.writelines(lines)
print('writelines demo')

Append Mode 'a'

open('log.txt', 'a') opens for appending — new data is added to the end without truncating existing content.
# with open('log.txt', 'a') as f:
#     f.write('new entry\n')
print('append mode demo')

newlines in write()

write() does NOT add newlines automatically. You must include \n: f.write('line\n')
# with open('out.txt', 'w') as f:
#     f.write('first line\n')
#     f.write('second line\n')
print('newline demo')

Read+Write Mode 'r+'

open(f,'r+') opens for both reading and writing. The pointer starts at the beginning — writes OVERWRITE existing content.
# with open('out.txt', 'r+') as f:
#     f.seek(0, 2)  # go to end
#     f.write('appended')
print('r+ demo')

Flushing Buffers

f.flush() forces buffered data to disk. Useful for log files where you want real-time output.
# with open('log.txt', 'a') as f:
#     f.write('event\n')
#     f.flush()
print('flush demo')

print() to Files

print('text', file=f) writes to a file using print's formatting (adds newline). Convenient alternative to write().
# with open('out.txt', 'w') as f:
#     print('Hello', file=f)
print('print-to-file demo')

Atomic Write Pattern

Write to a temp file, then rename to the final path. This prevents partial writes from corrupting the target file.
import tempfile, os
# with tempfile.NamedTemporaryFile('w', delete=False) as f:
#     f.write(data); tmp = f.name
# os.replace(tmp, 'out.txt')
print('atomic write demo')

JSON to File

import json; json.dump(obj, f, indent=2) serializes Python data to a JSON file cleanly.
import json
data = {'name': 'Alice', 'age': 30}
# with open('data.json', 'w') as f:
#     json.dump(data, f, indent=2)
print(json.dumps(data, indent=2))

Binary Write Mode 'wb'

open('img.bin', 'wb') opens for binary writing. Write bytes objects: f.write(b'\x00\xff')
# with open('out.bin', 'wb') as f:
#     f.write(bytes([0, 255, 128]))
print('binary write demo')

Quick Check

What happens to an existing file when opened with mode 'w'?

Recap

Mode 'w' truncates, 'a' appends, 'r+' reads+writes. Use write() with explicit \n. print(file=f) is a convenient alternative. Flush for real-time logs.

Keep Going

Great work! Move on to the next lesson to keep progressing.

Frequently asked questions

Is the “Writing and Appending to Files” lesson free?

Yes — the full text of “Writing and Appending to Files” is free to read here on the web, and the Python Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Python Academy course, upgrade to CoddyKit PRO.

What will I learn in “Writing and Appending to Files”?

Write new data and append to existing files safely. You practise Python Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Python Academy?

No prior experience is required. Python Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Writing and Appending to Files” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Python Academy lesson?

Yes. Every Python Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Opening and Reading Files
  2. Writing and Appending to Files
  3. Using the with Statement for Files
  4. Working with File Paths using pathlib
← Back to Python Academy