Bird
Raised Fist0
Pythonprogramming~20 mins

File modes and access types 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 Mode 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 code when reading a file?

Consider a file example.txt containing the text "Hello World". What will be printed by the following code?

Python
with open('example.txt', 'r') as f:
    content = f.read(5)
    print(content)
A"Hello World"
B"Hello\n"
C"Hello"
D"World"
Attempts:
2 left
💡 Hint

The read(n) method reads n characters from the file starting at the beginning.

Predict Output
intermediate
2:00remaining
What happens when opening a file in 'w' mode?

Given a file data.txt that already contains some text, what will be the content of the file after running this code?

Python
with open('data.txt', 'w') as f:
    f.write('New content')
AThe code will raise an error because the file exists.
BThe file will contain the old content plus "New content" appended.
CThe file will be unchanged.
DThe file will contain "New content" only.
Attempts:
2 left
💡 Hint

Opening a file in 'w' mode clears its content before writing.

Predict Output
advanced
2:00remaining
What error does this code raise when opening a non-existent file?

What error will this code raise if missing.txt does not exist?

Python
with open('missing.txt', 'r') as f:
    data = f.read()
AFileNotFoundError
BPermissionError
CIsADirectoryError
DNo error, file is created automatically
Attempts:
2 left
💡 Hint

Opening a file in read mode requires the file to exist.

Predict Output
advanced
2:00remaining
What is the content of the file after this code runs?

Assume log.txt initially contains "Start\n". What will be the content after running this code?

Python
with open('log.txt', 'a') as f:
    f.write('End\n')
A"End\n"
B"Start\nEnd\n"
C"Start\n"
DThe file is empty
Attempts:
2 left
💡 Hint

Mode 'a' appends to the file without deleting existing content.

🧠 Conceptual
expert
2:00remaining
Which file mode allows both reading and writing without truncating the file?

Choose the file mode that opens a file for both reading and writing, but does not erase the existing content when opened.

A"r+"
B"w+"
C"a+"
D"x+"
Attempts:
2 left
💡 Hint

One mode allows reading and writing and keeps existing content intact.

Practice

(1/5)
1. Which file mode in Python opens a file for reading only, and raises an error if the file does not exist?
file = open('data.txt', mode)
easy
A. "r"
B. "w"
C. "a"
D. "x"

Solution

  1. Step 1: Understand the purpose of mode "r"

    Mode "r" opens a file for reading only and requires the file to exist.
  2. Step 2: Compare with other modes

    Mode "w" opens for writing (creates or truncates), "a" appends, and "x" creates a new file but errors if it exists.
  3. Final Answer:

    "r" -> Option A
  4. Quick Check:

    Read-only mode = "r" [OK]
Hint: Read-only mode is just "r" [OK]
Common Mistakes:
  • Confusing "r" with "w" which overwrites files
  • Using "a" thinking it reads
  • Choosing "x" which creates files
2. Which of the following is the correct syntax to open a file named log.txt for appending text in Python?
easy
A. open('log.txt', 'r')
B. open('log.txt', 'w')
C. open('log.txt', 'a')
D. open('log.txt', 'x')

Solution

  1. Step 1: Identify the mode for appending

    Mode "a" opens the file for appending, adding new content at the end.
  2. Step 2: Check syntax correctness

    The syntax open('log.txt', 'a') is correct for appending text.
  3. Final Answer:

    open('log.txt', 'a') -> Option C
  4. Quick Check:

    Append mode = "a" [OK]
Hint: Append mode is always "a" [OK]
Common Mistakes:
  • Using "r" which is read-only
  • Using "w" which overwrites the file
  • Using "x" which creates new file only
3. What will be the output of the following code if example.txt contains the text "Hello"?
with open('example.txt', 'w') as f:
    f.write('World')

with open('example.txt', 'r') as f:
    print(f.read())
medium
A. World
B. Hello
C. HelloWorld
D. Error

Solution

  1. Step 1: Understand mode "w" effect on file content

    Opening with "w" overwrites the file, so "World" replaces "Hello".
  2. Step 2: Reading the file after writing

    Reading the file after writing will output the new content "World".
  3. Final Answer:

    World -> Option A
  4. Quick Check:

    Write mode overwrites content = "World" [OK]
Hint: Write mode "w" replaces file content [OK]
Common Mistakes:
  • Assuming "w" appends instead of overwrites
  • Expecting original content to remain
  • Thinking reading causes error after writing
4. What is wrong with this code snippet?
f = open('data.txt', 'r')
content = f.read()
f.write('More data')
f.close()
medium
A. No error, code is correct
B. File is not closed properly
C. File mode should be "a" to read
D. File is opened in read mode but write is attempted

Solution

  1. Step 1: Check file mode and operations

    The file is opened in "r" (read) mode, which does not allow writing.
  2. Step 2: Identify the error cause

    Calling f.write() in read mode causes a runtime error because writing is not allowed.
  3. Final Answer:

    File is opened in read mode but write is attempted -> Option D
  4. Quick Check:

    Write not allowed in "r" mode [OK]
Hint: Write needs "w" or "a" mode, not "r" [OK]
Common Mistakes:
  • Forgetting write is disallowed in read mode
  • Not closing file properly (though here it is closed)
  • Confusing append mode with read mode
5. You want to create a new file report.txt but only if it does not already exist. Which mode should you use to avoid overwriting existing files?
hard
A. "w"
B. "x"
C. "a"
D. "r+"

Solution

  1. Step 1: Understand mode "x" behavior

    Mode "x" creates a new file and raises an error if the file already exists, preventing overwriting.
  2. Step 2: Compare with other modes

    "w" overwrites, "a" appends or creates, "r+" opens for reading and writing but requires file to exist.
  3. Final Answer:

    "x" -> Option B
  4. Quick Check:

    Create new only = "x" mode [OK]
Hint: Use "x" to create file only if not exists [OK]
Common Mistakes:
  • Using "w" which overwrites existing files
  • Using "a" which appends or creates silently
  • Using "r+" which needs existing file