Python6 min read

Python Working with CSV

Read and write CSV files efficiently.

David Miller
December 18, 2025
0.0k0

Handle CSV data easily.

Read CSV

```python import csv

with open('data.csv', 'r') as file: reader = csv.reader(file) # Skip header next(reader) for row in reader: name, age, city = row print(f"{name} is {age} from {city}") ```

Write CSV

```python import csv

data = [ ['Name', 'Age', 'City'], ['Tom', 25, 'Austin'], ['Sarah', 28, 'Miami'], ['Mike', 30, 'Denver'] ]

with open('output.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerows(data) ```

DictReader and DictWriter

```python import csv

Read as dictionary with open('data.csv', 'r') as file: reader = csv.DictReader(file) for row in reader: print(row['Name'], row['Age'])

Write as dictionary data = [ {'Name': 'Tom', 'Age': 25, 'City': 'Austin'}, {'Name': 'Sarah', 'Age': 28, 'City': 'Miami'} ]

with open('output.csv', 'w', newline='') as file: fieldnames = ['Name', 'Age', 'City'] writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() writer.writerows(data) ```

Custom Delimiter

```python import csv

Read TSV (tab-separated) with open('data.tsv', 'r') as file: reader = csv.reader(file, delimiter='\t') for row in reader: print(row)

Write with custom delimiter with open('output.txt', 'w') as file: writer = csv.writer(file, delimiter='|') writer.writerow(['Tom', 25, 'Austin']) ```

Using Pandas

```python import pandas as pd

Read CSV df = pd.read_csv('data.csv') print(df.head())

Filter data adults = df[df['Age'] >= 18]

Write CSV df.to_csv('output.csv', index=False) ```

Remember

- Use DictReader for easier access - Set newline='' when writing - Pandas for large CSV files

#Python#Advanced#CSV