Python之CSV 文件读取与写入

147 阅读1分钟

代码

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.writerwriterows方法将列表数据写入文件。
  • csv.DictWriter方式:定义字典列表data_dc存储相同结构的数据,以写入模式打开test1.csv文件,指定字段名fields,先通过writeheader写入表头,再用writerows写入字典数据。