Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Overwrite vs append behavior
📖 Scenario: Imagine you are keeping a simple log of daily tasks in a text file. Sometimes you want to replace the whole log with new tasks, and other times you want to add new tasks to the existing log without losing the old ones.
🎯 Goal: You will learn how to write to a file in Python using two different modes: overwrite and append. You will create a file with some tasks, then add more tasks without deleting the old ones, and finally replace all tasks with a new list.
📋 What You'll Learn
Create a text file with initial tasks using overwrite mode
Create a variable to hold new tasks to add
Append new tasks to the existing file without deleting old tasks
Overwrite the file with a completely new set of tasks
Print the final content of the file
💡 Why This Matters
🌍 Real World
File writing and appending is used in logging, saving user data, and updating records without losing previous information.
💼 Career
Knowing how to manage file content safely is essential for software developers, data analysts, and system administrators.
Progress0 / 4 steps
1
Create initial task list file with overwrite mode
Create a file called tasks.txt and write these exact tasks using overwrite mode: "Buy groceries\nClean the house\nPay bills\n". Use open with mode 'w' and write method.
Python
Hint
Use open with mode 'w' to overwrite the file. Use write to add the tasks as a string with newline characters.
2
Create a variable with new tasks to add
Create a variable called new_tasks and set it to the string "Walk the dog\nRead a book\n".
Python
Hint
Just create a string variable with the new tasks separated by newline characters.
3
Append new tasks to the existing file
Open tasks.txt in append mode using open with mode 'a'. Use write to add the contents of new_tasks to the file without deleting existing tasks.
Python
Hint
Use mode 'a' to add to the file without removing old content.
4
Overwrite the file with a new set of tasks and print the final content
Open tasks.txt in overwrite mode 'w' and write the string "Exercise\nCook dinner\n" to replace all tasks. Then open the file in read mode 'r' and print its content using print.
Python
Hint
Use 'w' mode to overwrite the file. Then read and print the file content to see the final tasks.
Practice
(1/5)
1. What happens when you open a file in Python with mode 'w' and write data to it?
easy
A. The file content is replaced with the new data.
B. The new data is added at the end of the file.
C. The file is opened for reading only.
D. The file content is duplicated.
Solution
Step 1: Understand file mode 'w'
Opening a file with mode 'w' means write mode, which clears existing content.
Step 2: Effect of writing in 'w' mode
Writing data in 'w' mode overwrites any existing content with the new data.
Final Answer:
The file content is replaced with the new data. -> Option A
Quick Check:
Overwrite = Replace content [OK]
Hint: Mode 'w' always replaces file content [OK]
Common Mistakes:
Thinking 'w' appends data
Confusing 'w' with 'a' mode
Assuming 'w' opens file for reading
2. Which of the following is the correct way to open a file for appending text in Python?
easy
A. open('file.txt', 'w')
B. open('file.txt', 'r')
C. open('file.txt', 'a')
D. open('file.txt', 'x')
Solution
Step 1: Identify append mode
Mode 'a' opens the file for appending, adding data at the end without deleting existing content.
Step 2: Check other modes
'w' overwrites, 'r' reads only, 'x' creates new file and errors if exists.
Final Answer:
open('file.txt', 'a') -> Option C
Quick Check:
Append mode = 'a' [OK]
Hint: Use 'a' to add data without deleting old [OK]
Common Mistakes:
Using 'w' when append is needed
Confusing 'r' with append mode
Using 'x' which fails if file exists
3. What is the output of this code?
lines = ['one', 'two']
with open('test.txt', 'w') as f:
for line in lines:
f.write(line + '\n')
with open('test.txt', 'a') as f:
f.write('three\n')
with open('test.txt') as f:
print(f.read())
medium
A. SyntaxError
B. three\n
C. one\ntwo\n
D. one\ntwo\nthree\n
Solution
Step 1: Write lines with 'w' mode
The first block writes 'one' and 'two' each on new lines, overwriting any old content.
Step 2: Append 'three' with 'a' mode
The second block adds 'three' on a new line at the end without removing previous lines.
Step 3: Read and print file content
The last block reads all lines, so output is 'one\ntwo\nthree\n'.
Final Answer:
one\ntwo\nthree\n -> Option D
Quick Check:
Write 'w' then append 'a' = combined content [OK]
Hint: 'w' clears file, 'a' adds after existing content [OK]
Common Mistakes:
Assuming 'a' overwrites content
Forgetting newline characters
Expecting only last write to appear
4. This code tries to add a line to a file but does not work as expected:
with open('data.txt', 'w') as f:
f.write('Hello\n')
with open('data.txt', 'w') as f:
f.write('World\n')
What is the problem?
medium
A. The second write overwrites the first line.
B. The file is opened in read mode instead of write mode.
C. The file is not closed before second write.
D. The write method cannot be used twice on the same file.
Solution
Step 1: Analyze first write
The first block writes 'Hello' and creates or overwrites the file.
Step 2: Analyze second write with 'w'
The second block opens the file again in 'w' mode, which clears previous content, then writes 'World'.
Final Answer:
The second write overwrites the first line. -> Option A
Quick Check:
Opening with 'w' overwrites content [OK]
Hint: Opening with 'w' erases old content [OK]
Common Mistakes:
Thinking file appends automatically
Believing file must be closed manually
Assuming write() can only be called once
5. You want to keep a log of events in a file without losing old logs. Which code snippet correctly appends new logs without overwriting existing ones?
medium
A. with open('log.txt', 'w') as f:
f.write('New event\n')
B. with open('log.txt', 'a') as f:
f.write('New event\n')
C. with open('log.txt', 'r') as f:
f.write('New event\n')
D. with open('log.txt', 'x') as f:
f.write('New event\n')
Solution
Step 1: Understand log file needs
Logs should be added without deleting old entries, so appending is needed.
Step 2: Choose correct mode
Mode 'a' appends data; 'w' overwrites, 'r' is read-only, 'x' creates new file and errors if exists.
Final Answer:
with open('log.txt', 'a') as f:
f.write('New event\n') -> Option B
Quick Check:
Append mode 'a' preserves old data [OK]
Hint: Use 'a' mode to add without deleting old logs [OK]