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
Writing file data
📖 Scenario: You are creating a simple program to save a list of favorite fruits to a text file. This is useful when you want to keep a record of your favorite items on your computer.
🎯 Goal: Build a Python program that writes a list of fruits to a file called fruits.txt. Each fruit should be on its own line in the file.
📋 What You'll Learn
Create a list called fruits with the exact values: 'apple', 'banana', 'cherry'
Create a variable called filename and set it to 'fruits.txt'
Use a with open(filename, 'w') block to open the file for writing
Inside the with block, use a for loop with variable fruit to write each fruit followed by a newline to the file
Print the message 'Data written to fruits.txt' after writing the file
💡 Why This Matters
🌍 Real World
Saving data to files is a common task for storing information like lists, logs, or settings on your computer.
💼 Career
Knowing how to write data to files is important for many programming jobs, including data processing, automation, and software development.
Progress0 / 4 steps
1
Create the list of fruits
Create a list called fruits with these exact values: 'apple', 'banana', 'cherry'.
Python
Hint
Use square brackets [] to create a list and separate items with commas.
2
Set the filename variable
Create a variable called filename and set it to the string 'fruits.txt'.
Python
Hint
Use an equals sign = to assign the string to the variable.
3
Write the fruits to the file
Use a with open(filename, 'w') block to open the file for writing. Inside the block, use a for loop with variable fruit to write each fruit followed by a newline character \n to the file.
Python
Hint
Use with open(filename, 'w') as file: to open the file. Then loop over fruits and write each fruit plus a newline.
4
Print confirmation message
Write a print statement to display the message 'Data written to fruits.txt' after the file writing block.
Python
Hint
Use print('Data written to fruits.txt') to show the message.
Practice
(1/5)
1. What does the mode 'w' do when used with open in Python?
easy
A. It opens the file for writing and overwrites existing content.
B. It opens the file for reading only.
C. It appends new data to the end of the file.
D. It opens the file in binary mode.
Solution
Step 1: Understand the 'w' mode in open()
The 'w' mode opens a file for writing and clears existing content if the file exists.
Step 2: Compare with other modes
'r' is for reading, 'a' is for appending, and 'b' is for binary mode, so they don't match 'w'.
Final Answer:
It opens the file for writing and overwrites existing content. -> Option A
Quick Check:
open(file, 'w') overwrites file [OK]
Hint: Remember 'w' means write and overwrite existing file [OK]
Common Mistakes:
Confusing 'w' with 'a' (append mode)
Thinking 'w' opens file for reading
Assuming 'w' preserves old content
2. Which of the following is the correct syntax to write the string 'Hello' to a file named 'greet.txt'?
easy
A. with open('greet.txt', 'w') as file: file.write('Hello')
B. with open('greet.txt', 'a') as file: file.read('Hello')
C. open('greet.txt', 'w').read('Hello')
D. file = open('greet.txt', 'r'); file.write('Hello'); file.close()
Solution
Step 1: Identify correct file mode and method
To write data, use 'w' mode and the write() method inside a with block for safety.
Step 2: Check each option
file = open('greet.txt', 'r'); file.write('Hello'); file.close() uses 'r' mode which is read-only, so write() will fail. open('greet.txt', 'w').read('Hello') uses read() instead of write(). with open('greet.txt', 'a') as file: file.read('Hello') uses read() and 'a' mode but tries to read data, which is incorrect. with open('greet.txt', 'w') as file: file.write('Hello') correctly uses 'w' mode and write() inside a with block.
Final Answer:
with open('greet.txt', 'w') as file: file.write('Hello') -> Option A
Quick Check:
Use with + 'w' + write() to save text [OK]
Hint: Use with open(filename, 'w') and write() to save text [OK]
Common Mistakes:
Using 'r' mode when writing
Calling read() instead of write()
Not closing the file or missing with block
3. What will be the content of 'data.txt' after running this code?
with open('data.txt', 'w') as f:
f.write('Line1\n')
f.write('Line2')
medium
A. Line1\nLine2
B. Line1
Line2
C. Line1Line2
D. Line1\Line2
Solution
Step 1: Understand the write() calls
The first write adds 'Line1\n' which means Line1 followed by a newline. The second write adds 'Line2' on the next line.
Step 2: Interpret escape sequences
'\n' is a newline character, so the file will have two lines: 'Line1' and 'Line2'.
Final Answer:
Line1
Line2 -> Option B
Quick Check:
\n creates new line in file content [OK]
Hint: Remember '\n' means new line in strings [OK]
Common Mistakes:
Confusing '\n' as literal text instead of newline
Assuming write() adds spaces automatically
Ignoring escape characters
4. What is wrong with this code snippet that tries to write 'Hello' to 'file.txt'?
file = open('file.txt', 'w')
file.write('Hello')
medium
A. The file is not opened in write mode.
B. write() method is used incorrectly.
C. The file is not closed after writing.
D. The filename should be a variable, not a string.
Solution
Step 1: Check file opening mode
The file is opened with 'w' mode, which is correct for writing.
Step 2: Check file closing
The code does not close the file after writing, which can cause data loss or resource leaks.
Final Answer:
The file is not closed after writing. -> Option C
Quick Check:
Always close files or use with block [OK]
Hint: Always close files or use with to avoid data loss [OK]
Common Mistakes:
Forgetting to close the file
Using wrong mode for writing
Misusing write() method
5. You want to write multiple lines from a list lines = ['First', 'Second', 'Third'] to a file so each line appears on its own line in the file. Which code correctly does this?
hard
A. with open('out.txt', 'w') as f:
f.writelines(lines)
B. with open('out.txt', 'w') as f:
f.write(lines)
C. with open('out.txt', 'w') as f:
f.write('\n'.join(lines))
D. with open('out.txt', 'w') as f:
for line in lines:
f.write(line + '\n')
Solution
Step 1: Understand how to write lines with newlines
Each line must end with a newline character '\n' to appear on separate lines in the file.
Step 2: Evaluate each option
with open('out.txt', 'w') as f:
for line in lines:
f.write(line + '\n') writes each line with '\n' explicitly, so lines appear separately. with open('out.txt', 'w') as f:
f.write(lines) tries to write a list directly, which causes a TypeError. with open('out.txt', 'w') as f:
f.write('\n'.join(lines)) joins lines with '\n' but does not add a final newline after the last line (which is acceptable but less explicit). with open('out.txt', 'w') as f:
f.writelines(lines) uses writelines() but without adding '\n', so lines will run together.
Final Answer:
with open('out.txt', 'w') as f:
for line in lines:
f.write(line + '\n') -> Option D
Quick Check:
Add '\n' to each line when writing in loop [OK]
Hint: Add '\n' to each line when writing in a loop [OK]