Concept Flow - Reading and writing CSV data
Open CSV file for reading
Create CSV reader object
Loop: Read each row
More rows?
No→Close file
Open a CSV file, create a reader, loop through rows, process each, then close the file.
import csv with open('data.csv', 'r') as file: reader = csv.reader(file) for row in reader: print(row)
| Step | Action | Evaluation | Result |
|---|---|---|---|
| 1 | Open 'data.csv' for reading | File opened | File object created |
| 2 | Create csv.reader object | csv.reader(file) | Reader object ready |
| 3 | Read first row | reader.__next__() | Row 1 data as list |
| 4 | Print row | print(row) | Row 1 printed |
| 5 | Read second row | reader.__next__() | Row 2 data as list |
| 6 | Print row | print(row) | Row 2 printed |
| 7 | Read next row | reader.__next__() | No more rows, StopIteration raised |
| 8 | Exit loop | StopIteration caught | Loop ends |
| 9 | Close file | file.close() | File closed |
| Variable | Start | After 1 | After 2 | Final |
|---|---|---|---|---|
| file | None | File object | File object | Closed |
| reader | None | Reader object | Reader object | Reader object |
| row | None | Row 1 list | Row 2 list | None (loop ended) |
Reading CSV: - Use 'with open(filename, "r") as file' - Create reader: csv.reader(file) - Loop: for row in reader - Each row is a list of strings - File auto-closed after block Writing CSV: - Use 'with open(filename, "w", newline="") as file' - Create writer: csv.writer(file) - Use writer.writerow(list) to write rows