代码
import csv
with open("tourist_data.csv", "r", encoding="gbk") as file:
# 通过列表方式进行读取
r = csv.reader(file)
for row in r:
print(row)
file.seek(0) # 将文件指针重新指向文件开头
# 通过字典方式进行读取
r = csv.DictReader(file)
for row in r:
print(row['日期'], row['九寨沟'], row['张家界'], row['香港'], row['东部华侨城'], row['上海迪士尼'])
# csv文件的写入
data_li = [
['姓名', '年龄', '出生地'],
['张三', 18, '北京'],
['李四', 19, '上海'],
['王五', 20, '武汉']
]
# 1.csv.writer
with open("../第四章/test.csv", "w", newline="", encoding="utf-8") as file:
w = csv.writer(file)
# 写入数据
w.writerows(data_li)
# 2. csv.DictWriter
data_dc = [
{'姓名':'张三', '年龄':18, '出生地':'北京'},
{'姓名':'李四', '年龄':19, '出生地':'上海'},
{'姓名':'王五', '年龄':20, '出生地':'武汉'}
]
with open("test1.csv", "w", newline="", encoding="utf-8") as file:
fields = ['姓名', '年龄', '出生地']
w = csv.DictWriter(file, fieldnames=fields)
# 写入标题行
w.writeheader()
# 写入数据
w.writerows(data_dc)
一、CSV 文件读取
代码通过两种方式读取tourist_data.csv文件:
- 列表方式读取:使用
csv.reader将文件内容按列表行读取,遍历输出每一行数据后,用file.seek(0)将文件指针重置到开头。 - 字典方式读取:使用
csv.DictReader将文件内容按字典行读取,遍历输出指定列(日期、九寨沟、张家界、香港、东部华侨城、上海迪士尼)的数据。
二、CSV 文件写入
代码通过两种方式写入 CSV 文件:
csv.writer方式:定义列表data_li存储 “姓名、年龄、出生地” 数据,以写入模式打开test.csv文件,使用csv.writer的writerows方法将列表数据写入文件。csv.DictWriter方式:定义字典列表data_dc存储相同结构的数据,以写入模式打开test1.csv文件,指定字段名fields,先通过writeheader写入表头,再用writerows写入字典数据。