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 simplest way to open a file for reading in Python?
Use the open() function with the filename and mode 'r', like open('filename.txt', 'r').
Click to reveal answer
beginner
How do you read a file line by line using a for loop in Python?
You can loop directly over the file object: with open('file.txt', 'r') as f: for line in f: print(line)
Click to reveal answer
beginner
Why is it good practice to use with when opening files?
Because with automatically closes the file when done, even if errors happen. This helps avoid resource leaks.
Click to reveal answer
intermediate
What does the readline() method do?
It reads the next single line from the file each time it is called, returning it as a string including the newline character.
Click to reveal answer
beginner
How can you remove the newline character from each line when reading a file?
Use the strip() method on the line string, like line.strip(), to remove whitespace including newlines.
Click to reveal answer
Which Python statement correctly reads a file line by line?
Aopen('file.txt').read()
Bwith open('file.txt') as f:
for line in f:
print(line)
Cfile.read('file.txt')
Dfor line in open('file.txt').readlines(): print(line)
✗ Incorrect
Option B uses a with statement and loops directly over the file object, which is the recommended way to read lines one by one.
What does the 'r' mode mean in open('file.txt', 'r')?
AAppend mode, adds to the end
BWrite mode, opens file for writing
CRead mode, opens file for reading
DRead and write mode
✗ Incorrect
'r' stands for read mode, which opens the file only for reading.
What happens if you forget to close a file after reading?
AThe file stays open, which can cause resource leaks
BNothing, Python closes it automatically always
CThe file deletes itself
DThe file content is lost
✗ Incorrect
If you don't close a file, it remains open and can cause resource leaks or lock the file.
Which method reads one line at a time from a file?
Aread()
Bopen()
Creadlines()
Dreadline()
✗ Incorrect
The readline() method reads the next single line from the file.
How can you remove extra spaces and newline characters from a line read from a file?
Aline.strip()
Bline.remove()
Cline.clear()
Dline.delete()
✗ Incorrect
The strip() method removes whitespace including newlines from the start and end of a string.
Explain how to read a file line by line in Python using a for loop.
Think about how you open the file and how you get each line one at a time.
You got /4 concepts.
Describe why using the with statement is important when working with files.
Consider what happens if your program crashes while the file is open.
You got /4 concepts.
Practice
(1/5)
1. What does the following code do?
with open('data.txt') as file:
for line in file:
print(line)
easy
A. Creates a new file named 'data.txt'
B. Reads the whole file at once and prints it
C. Writes lines to 'data.txt'
D. Reads and prints each line from 'data.txt' including newline characters
Solution
Step 1: Understand the with open statement
The code opens 'data.txt' for reading and ensures it closes automatically after use.
Step 2: Analyze the for loop over the file object
Looping over the file reads it line by line, printing each line including its newline character.
Final Answer:
Reads and prints each line from 'data.txt' including newline characters -> Option D
Quick Check:
Reading lines one by one = Reads and prints each line from 'data.txt' including newline characters [OK]
Hint: Looping file reads lines one by one including newlines [OK]
Common Mistakes:
Thinking it reads whole file at once
Confusing reading with writing
Assuming it creates a file
2. Which of these is the correct syntax to read a file line by line in Python?
easy
A. with open('file.txt') as f:
for line in f:
print(line)
B. open('file.txt') for line in f:
print(line)
C. with open('file.txt') as f:
while line in f:
print(line)
D. with open('file.txt') as f:
for line in file:
print(line)
Solution
Step 1: Check the correct use of with open
with open('file.txt') as f:
for line in f:
print(line) correctly uses 'with open(filename) as f:' to open the file safely.
Step 2: Verify the for loop syntax
with open('file.txt') as f:
for line in f:
print(line) uses 'for line in f:' which is the proper way to iterate lines in the file object.
Final Answer:
with open('file.txt') as f:\n for line in f:\n print(line) -> Option A
Quick Check:
Correct with open and for loop syntax = with open('file.txt') as f:
for line in f:
print(line) [OK]
Hint: Use 'with open' and 'for line in file' to read lines [OK]
Common Mistakes:
Missing 'with' keyword
Using wrong loop syntax like 'while line in f'
Using undefined variable 'file' instead of 'f'
3. What will be the output of this code if 'test.txt' contains:\nLine1\nLine2\n\nLine4\n?
with open('test.txt') as f:
for line in f:
print(line.strip())
medium
A. Line1\nLine2\n\nLine4
B. Line1\nLine2\n\n\nLine4
C. Line1\nLine2\nLine4
D. Line1\nLine2\nLine4\n
Solution
Step 1: Understand strip() effect on lines
strip() removes whitespace including newlines, so empty lines become empty strings.
Step 2: Analyze printing each stripped line
Empty lines print as blank lines, but print() adds a newline, so empty lines show as blank lines.
Final Answer:
Line1\nLine2\n\nLine4 -> Option A
Quick Check:
strip() on empty -> '', print('') = blank line = Line1\nLine2\n\nLine4 [OK]
Hint: strip() removes newlines, print adds one newline per line [OK]
Common Mistakes:
Assuming strip() keeps newlines
Confusing blank lines with extra newlines
Ignoring print() adds newline automatically
4. Find the error in this code snippet:
with open('file.txt') as f:
for line in file:
print(line)
medium
A. Indentation error inside the loop
B. Missing colon after for loop
C. Variable 'file' is undefined; should use 'f' instead
D. File not opened in write mode
Solution
Step 1: Check variable names used in the loop
The file is opened as 'f', but the loop uses 'file' which is undefined.
Step 2: Confirm correct variable usage
Changing 'file' to 'f' fixes the error and allows reading lines properly.
Final Answer:
Variable 'file' is undefined; should use 'f' instead -> Option C
Quick Check:
Use same variable name as in with open = Variable 'file' is undefined; should use 'f' instead [OK]
Hint: Use same variable name from with open in for loop [OK]
Common Mistakes:
Using different variable names
Assuming file is a keyword
Ignoring variable scope inside with block
5. You want to read a large log file line by line and count how many lines contain the word 'error'. Which code snippet correctly does this?
hard
A. count = 0
with open('log.txt') as f:
lines = f.readlines()
for line in lines:
if 'error' in line:
count += 1
print(count)
B. count = 0
with open('log.txt') as f:
for line in f:
if 'error' in line:
count += 1
print(count)
C. count = 0
f = open('log.txt')
lines = f.readlines()
for line in lines:
if 'error' in line:
count += 1
f.close()
print(count)
D. count = 0
with open('log.txt') as f:
for line in f:
if line == 'error':
count += 1
print(count)
Solution
Step 1: Choose efficient line-by-line reading
count = 0
with open('log.txt') as f:
for line in f:
if 'error' in line:
count += 1
print(count) uses 'with open' and iterates file line by line, which is memory efficient for large files.
Step 2: Check condition for counting 'error' in line
count = 0
with open('log.txt') as f:
for line in f:
if 'error' in line:
count += 1
print(count) correctly checks if 'error' is anywhere in the line and increments count.
Final Answer:
count = 0\nwith open('log.txt') as f:\n for line in f:\n if 'error' in line:\n count += 1\nprint(count) -> Option B
Quick Check:
Efficient reading + correct condition = count = 0
with open('log.txt') as f:
for line in f:
if 'error' in line:
count += 1
print(count) [OK]
Hint: Use with open and for line in file for big files [OK]