Bird
Raised Fist0
Pythonprogramming~20 mins

Writing file data in Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

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
Challenge - 5 Problems
🎖️
File Writing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of this file write operation?
Consider this Python code that writes to a file and then reads it back. What will be printed?
Python
with open('testfile.txt', 'w') as f:
    f.write('Hello\nWorld')

with open('testfile.txt', 'r') as f:
    content = f.read()
print(content)
A
Hello
World
BHello World
CHello\nWorld
DSyntaxError
Attempts:
2 left
💡 Hint
Remember that '\n' is a newline character in strings.
Predict Output
intermediate
2:00remaining
What happens if you write to a file opened in append mode?
Given this code, what will be the content of 'append.txt' after running it twice?
Python
with open('append.txt', 'a') as f:
    f.write('Line\n')
AThe file will contain 'Line\nLine\n'
BThe file will contain only 'Line\n'
CThe file will be overwritten with 'Line\n'
DRaises an error because 'a' mode does not allow writing
Attempts:
2 left
💡 Hint
Append mode adds data to the end of the file without deleting existing content.
Predict Output
advanced
2:00remaining
What is the output of this code that writes and reads binary data?
Look at this Python code that writes bytes to a file and then reads it back. What will be printed?
Python
data = b'\x48\x65\x6c\x6c\x6f'
with open('binary.dat', 'wb') as f:
    f.write(data)

with open('binary.dat', 'rb') as f:
    content = f.read()
print(content)
Ab'\x48\x65\x6c\x6c\x6f'
B'Hello'
Cb'Hello'
DUnicodeDecodeError
Attempts:
2 left
💡 Hint
Binary mode reads and writes bytes, so the output is a bytes object.
Predict Output
advanced
2:00remaining
What error does this code raise when writing to a file opened in read mode?
What happens when you try to write to a file opened with mode 'r'?
Python
with open('file.txt', 'r') as f:
    f.write('Test')
AFileNotFoundError
Bio.UnsupportedOperation: not writable
CTypeError
DNo error, writes successfully
Attempts:
2 left
💡 Hint
Files opened in read mode do not allow writing.
🧠 Conceptual
expert
2:00remaining
How many lines will be in the file after running this code?
This code writes lines to a file inside a loop. How many lines will the file contain after running it once?
Python
with open('lines.txt', 'w') as f:
    for i in range(5):
        f.write(f'Line {i}\n')
    f.write('End')
A5
B7
C4
D6
Attempts:
2 left
💡 Hint
Count the lines written including the last write without a newline.

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

  1. Step 1: Understand the 'w' mode in open()

    The 'w' mode opens a file for writing and clears existing content if the file exists.
  2. 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'.
  3. Final Answer:

    It opens the file for writing and overwrites existing content. -> Option A
  4. 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

  1. Step 1: Identify correct file mode and method

    To write data, use 'w' mode and the write() method inside a with block for safety.
  2. 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.
  3. Final Answer:

    with open('greet.txt', 'w') as file: file.write('Hello') -> Option A
  4. 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

  1. 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.
  2. Step 2: Interpret escape sequences

    '\n' is a newline character, so the file will have two lines: 'Line1' and 'Line2'.
  3. Final Answer:

    Line1 Line2 -> Option B
  4. 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

  1. Step 1: Check file opening mode

    The file is opened with 'w' mode, which is correct for writing.
  2. Step 2: Check file closing

    The code does not close the file after writing, which can cause data loss or resource leaks.
  3. Final Answer:

    The file is not closed after writing. -> Option C
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    with open('out.txt', 'w') as f: for line in lines: f.write(line + '\n') -> Option D
  4. Quick Check:

    Add '\n' to each line when writing in loop [OK]
Hint: Add '\n' to each line when writing in a loop [OK]
Common Mistakes:
  • Writing list directly without joining
  • Using writelines() without newlines
  • Forgetting '\n' causes lines to merge