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 a CSV file?
A CSV (Comma-Separated Values) file is a simple text file that stores tabular data. Each line is a row, and columns are separated by commas.
Click to reveal answer
beginner
Which Python module is commonly used to read and write CSV files?
The csv module is used in Python to read from and write to CSV files easily.
Click to reveal answer
beginner
How do you open a CSV file for reading in Python?
Use open('filename.csv', 'r', newline='') to open the file in read mode. The newline='' helps handle newlines correctly.
Click to reveal answer
beginner
What does csv.reader do?
csv.reader reads the CSV file line by line and returns each row as a list of strings.
Click to reveal answer
beginner
How do you write rows to a CSV file in Python?
Use csv.writer to create a writer object, then call writer.writerow(row) for each row you want to write.
Click to reveal answer
Which Python code correctly opens a CSV file for writing?
Aopen('data.csv', 'r')
Bopen('data.csv', 'a')
Copen('data.csv', 'w', newline='')
Dopen('data.csv')
✗ Incorrect
To write to a CSV file, open it with mode 'w' and use newline='' to avoid extra blank lines.
What does the csv.reader return for each row?
AA list of strings
BA dictionary
CA string
DAn integer
✗ Incorrect
csv.reader returns each row as a list of strings representing the columns.
Which delimiter is used by default in CSV files?
ASemicolon (;)
BComma (,)
CTab (\t)
DSpace ( )
✗ Incorrect
CSV stands for Comma-Separated Values, so the default delimiter is a comma.
How do you write multiple rows at once using csv.writer?
Awriter.writerows(list_of_rows)
Bwriter.writerow(list_of_rows)
Cwriter.write(list_of_rows)
Dwriter.write_rows(list_of_rows)
✗ Incorrect
writer.writerows() writes multiple rows from a list of lists.
Why use newline='' when opening CSV files?
ATo read files faster
BTo add extra blank lines
CTo encrypt the file
DTo prevent extra blank lines on Windows
✗ Incorrect
Using newline='' prevents Python from adding extra blank lines when writing CSV files on Windows.
Explain how to read data from a CSV file in Python step-by-step.
Think about opening the file, reading rows, and what each row looks like.
You got /4 concepts.
Describe how to write data to a CSV file in Python.
Focus on opening the file, creating the writer, writing rows, and closing the file.
You got /4 concepts.
Practice
(1/5)
1. What does the Python csv.reader function do when reading a CSV file?
easy
A. It deletes rows from the CSV file.
B. It reads the file and returns each row as a list of strings.
C. It converts CSV data into a dictionary automatically.
D. It writes data to a CSV file.
Solution
Step 1: Understand csv.reader purpose
The csv.reader reads CSV files and returns each row as a list of strings representing columns.
Step 2: Differentiate from other functions
Functions like csv.DictReader return dictionaries, and writing functions save data, not read it.
Final Answer:
It reads the file and returns each row as a list of strings. -> Option B
Quick Check:
csv.reader returns lists [OK]
Hint: csv.reader reads rows as lists, not dictionaries [OK]
Common Mistakes:
Confusing csv.reader with csv.DictReader
Thinking csv.reader writes data
Assuming it deletes or modifies files
2. Which of the following is the correct way to open a CSV file for writing in Python?
easy
A. open('file.csv', 'w', newline='')
B. open('file.csv', 'r')
C. open('file.csv', 'a', encoding='utf-8')
D. open('file.csv', 'rb')
Solution
Step 1: Identify mode for writing CSV
To write CSV files, open the file in write mode 'w' and use newline='' to prevent extra blank lines on Windows.
Step 2: Check other options
'r' is read mode, 'a' is append (valid but not asked), 'rb' is binary read mode (not for writing text CSV).
Final Answer:
open('file.csv', 'w', newline='') -> Option A
Quick Check:
Write mode with newline='' [OK]
Hint: Use 'w' mode with newline='' to write CSV files correctly [OK]
Common Mistakes:
Forgetting newline='' causes blank lines
Using 'r' mode when writing
Using binary mode for text CSV
3. What will be the output of this code snippet?
import csv
with open('data.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['Name', 'Age'])
writer.writerow(['Alice', 30])
with open('data.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
medium
A. ['Name', 'Age']\n['Alice', 30]
B. Name,Age\nAlice,30
C. ['Name', 'Age']\n['Alice', '30']
D. Error because of missing encoding
Solution
Step 1: Writing rows with csv.writer
The code writes two rows: header ['Name', 'Age'] and data ['Alice', 30]. Numbers are converted to strings when written.
Step 2: Reading rows with csv.reader and printing
Reading returns each row as a list of strings. print(row) shows repr with quotes: ['Name', 'Age'] and ['Alice', '30'].
Hint: csv.reader returns lists of strings, print shows quotes around all elements [OK]
Common Mistakes:
Expecting printed rows as comma strings
Confusing string and integer types in output
Assuming encoding error without cause
4. Identify the error in this code that reads a CSV file:
import csv
with open('file.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
medium
A. Indentation error in the for loop
B. Missing import statement for csv module
C. File opened in wrong mode
D. csv.reader requires newline argument
Solution
Step 1: Check code indentation
The print statement inside the for loop must be indented to be part of the loop body.
Step 2: Verify other parts
Import is present, file mode 'r' is correct for reading, and newline argument is not needed for reading.
Final Answer:
Indentation error in the for loop -> Option A
Quick Check:
Python requires correct indentation [OK]
Hint: Indent inside loops to avoid syntax errors [OK]
Common Mistakes:
Forgetting to indent inside loops
Thinking newline is needed for reading
Confusing file modes
5. You want to read a CSV file where the first row contains column names, and then write a new CSV file with only rows where the 'Age' column is greater than 25. Which approach is correct?
hard
A. Use csv.reader to read, skip first row manually, filter rows, then write with csv.writer.
B. Use csv.writer to read and write files directly without filtering.
C. Use csv.reader to read all rows, convert 'Age' to int, then write with csv.DictWriter without header.
D. Use csv.DictReader to read rows as dictionaries, filter by 'Age' key, then write with csv.DictWriter including header.
Solution
Step 1: Choose reading method with headers
csv.DictReader reads CSV rows as dictionaries using the first row as keys, making it easy to filter by column names like 'Age'.
Step 2: Filter and write with headers
Filter rows where 'Age' > 25, then write using csv.DictWriter with fieldnames to include headers properly.
Final Answer:
Use csv.DictReader to read rows as dictionaries, filter by 'Age' key, then write with csv.DictWriter including header. -> Option D
Quick Check:
DictReader + DictWriter for header and filtering [OK]
Hint: Use DictReader/DictWriter for header-based filtering [OK]
Common Mistakes:
Skipping header manually instead of using DictReader