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
Recall & Review
beginner
What is the basic Python command to open a file for reading?
Use open('filename', 'r') to open a file in read mode.
Click to reveal answer
beginner
How do you read the entire content of a file at once?
Use the read() method on the file object, like file.read().
Click to reveal answer
intermediate
What does the with statement do when reading files?
It automatically opens and closes the file, making sure resources are freed even if errors happen.
Click to reveal answer
beginner
How can you read a file line by line in Python?
Use a loop like for line in file: to read one line at a time.
Click to reveal answer
beginner
What happens if you try to open a file that does not exist in read mode?
Python raises a FileNotFoundError because the file cannot be found.
Click to reveal answer
Which mode should you use to open a file for reading in Python?
A'w'
B'r'
C'a'
D'x'
✗ Incorrect
The 'r' mode opens a file for reading only.
What does the read() method do?
AWrites data to the file
BReads one line from the file
CCloses the file
DReads the entire file content as a string
✗ Incorrect
read() reads the whole file content at once.
Why is it good to use with open(...) when reading files?
AIt automatically closes the file after reading
BIt speeds up reading
CIt writes data to the file
DIt creates a new file
✗ Incorrect
Using with ensures the file is closed properly.
How can you read a file line by line?
AUsing a for loop: <code>for line in file:</code>
BUsing <code>file.write()</code>
CUsing <code>file.close()</code>
DUsing <code>open('file', 'w')</code>
✗ Incorrect
A for loop over the file object reads it line by line.
What error occurs if you open a non-existent file in read mode?
AValueError
BTypeError
CFileNotFoundError
DIndexError
✗ Incorrect
Trying to read a missing file raises FileNotFoundError.
Explain how to safely read the contents of a file in Python.
Think about how to open, read, and close a file safely.
You got /4 concepts.
What are the common errors you might face when reading a file and how to handle them?
Consider what happens if the file is missing or inaccessible.
You got /4 concepts.
Practice
(1/5)
1. What does the open('file.txt', 'r') command do in Python?
easy
A. It creates a new file named 'file.txt'.
B. It deletes the file 'file.txt'.
C. It opens the file 'file.txt' for reading.
D. It writes data to 'file.txt'.
Solution
Step 1: Understand the open() function
The open() function is used to open a file in a specified mode.
Step 2: Recognize mode 'r'
Mode 'r' means open the file for reading only, no writing or creating.
Final Answer:
It opens the file 'file.txt' for reading. -> Option C
Quick Check:
open() with 'r' = open for reading [OK]
Hint: Mode 'r' always means read file only [OK]
Common Mistakes:
Confusing 'r' with write mode 'w'
Thinking it creates a new file
Assuming it deletes the file
2. Which of the following is the correct syntax to read all content from a file using with?
easy
A. open('data.txt', 'r') as file:
content = file.read()
B. with open('data.txt', 'w') as file:
content = file.read()
C. with open('data.txt', 'r'):
content = file.read()
D. with open('data.txt', 'r') as file:
content = file.read()
Solution
Step 1: Check the use of 'with' statement
The 'with' statement must be followed by open(filename, mode) as variable to assign the file object.
Step 2: Verify reading mode and method
Mode 'r' is for reading, and file.read() reads all content.
Final Answer:
with open('data.txt', 'r') as file:
content = file.read() -> Option D
Quick Check:
with + open + 'r' + read() = correct syntax [OK]
Hint: Use 'with open(filename, 'r') as f:' to read files safely [OK]
Common Mistakes:
Using 'w' mode when reading is needed
Missing 'as file' after open()
Not indenting inside 'with' block
3. What will be the output of this code if 'example.txt' contains three lines: 'apple', 'banana', 'cherry'?
with open('example.txt', 'r') as f:
lines = f.readlines()
print(lines)
medium
A. ['apple\n', 'banana\n', 'cherry\n']
B. ['apple\n', 'banana\n', 'cherry']
C. apple banana cherry
D. ['apple', 'banana', 'cherry']
Solution
Step 1: Understand readlines() behavior
readlines() reads all lines into a list, each line ending with a newline character '\n' except possibly the last.
Step 2: Check the file content and output
Since the file has three lines, the list will contain each line as a string with '\n' at the end except maybe the last line. Usually, text files end lines with '\n', so all lines have '\n'.
Final Answer:
['apple\n', 'banana\n', 'cherry\n'] -> Option A
Quick Check:
readlines() returns list of lines with '\n' [OK]
Hint: readlines() keeps newline characters '\n' at line ends [OK]
Common Mistakes:
Assuming readlines() strips '\n'
Confusing read() output with readlines()
Expecting a single string instead of list
4. Identify the error in this code snippet that tries to read a file line by line:
file = open('notes.txt', 'r')
for line in file.read():
print(line)
file.close()
medium
A. Using 'r' mode instead of 'w' mode
B. Using file.read() instead of file.readlines() or iterating directly on file
C. Not closing the file after reading
D. Missing 'with' statement to open the file
Solution
Step 1: Analyze the for loop iteration
The code uses file.read() which returns a single string of the whole file content.
Step 2: Understand iteration over string vs lines
Iterating over a string loops over each character, not each line. To read line by line, use file.readlines() or iterate directly on file.
Final Answer:
Using file.read() instead of file.readlines() or iterating directly on file -> Option B
Quick Check:
read() returns string, not list of lines [OK]
Hint: Iterate file object or use readlines() to get lines [OK]
Common Mistakes:
Iterating over string instead of lines
Forgetting to close the file
Confusing read() and readline()
5. You want to read a file and create a list of all non-empty lines without newline characters. Which code correctly does this?
hard
A. with open('log.txt', 'r') as f:
lines = [line.strip() for line in f if line.strip()]
B. with open('log.txt', 'r') as f:
lines = [line for line in f.readlines() if line != '\n']
C. with open('log.txt', 'r') as f:
lines = f.read().split('\n')
D. with open('log.txt', 'r') as f:
lines = [line.rstrip('\n') for line in f.readlines()]
Solution
Step 1: Remove whitespace and filter empty lines
Using line.strip() removes spaces and newline characters from both ends. The condition if line.strip() filters out empty lines.
Step 2: Use list comprehension on file object
Iterating directly on the file object reads line by line efficiently. This creates a list of cleaned, non-empty lines.
Final Answer:
with open('log.txt', 'r') as f:
lines = [line.strip() for line in f if line.strip()] -> Option A
Quick Check:
strip() + filter empty lines = clean list [OK]
Hint: Use strip() and filter with if line.strip() in comprehension [OK]
Common Mistakes:
Not stripping newline characters
Including empty lines in the list
Using read() then splitting without filtering empty lines