Python Working with CSV
Read and write CSV files efficiently.
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