CSV操作 #
一、读取CSV #
python
import csv
# 读取为列表
with open('data.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row) # ['name', 'age', 'city']
# 读取为字典
with open('data.csv', 'r') as f:
reader = csv.DictReader(f)
for row in reader:
print(row) # {'name': 'Tom', 'age': '25', 'city': 'Beijing'}
二、写入CSV #
python
import csv
# 写入列表
data = [
['name', 'age', 'city'],
['Tom', 25, 'Beijing'],
['Jerry', 30, 'Shanghai']
]
with open('output.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(data)
# 写入字典
data = [
{'name': 'Tom', 'age': 25, 'city': 'Beijing'},
{'name': 'Jerry', 'age': 30, 'city': 'Shanghai'}
]
with open('output.csv', 'w', newline='') as f:
fieldnames = ['name', 'age', 'city']
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
三、追加数据 #
python
import csv
# 追加行
with open('data.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(['Alice', 28, 'Guangzhou'])
四、自定义分隔符 #
python
import csv
# 使用制表符
with open('data.tsv', 'r') as f:
reader = csv.reader(f, delimiter='\t')
for row in reader:
print(row)
# 写入制表符分隔
with open('output.tsv', 'w', newline='') as f:
writer = csv.writer(f, delimiter='\t')
writer.writerows(data)
五、处理编码 #
python
import csv
# 读取UTF-8编码
with open('data.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
print(row)
# 写入UTF-8编码(带BOM,Excel兼容)
with open('output.csv', 'w', encoding='utf-8-sig', newline='') as f:
writer = csv.writer(f)
writer.writerows(data)
六、常用选项 #
python
import csv
# reader选项
reader = csv.reader(f,
delimiter=',', # 分隔符
quotechar='"', # 引用字符
quoting=csv.QUOTE_MINIMAL # 引用方式
)
# writer选项
writer = csv.writer(f,
delimiter=',',
quotechar='"',
quoting=csv.QUOTE_ALL # 所有字段加引号
)
最后更新:2026-03-16