Z
ZHANK
文件与系统

CSV 与表格处理

csv 模块读写、DictReader/Writer、openpyxl 操作 Excel

CSV 与表格处理

csv 模块处理 CSV 文件,openpyxl 操作 Excel——Python 处理表格数据的两大利器。

学完本章你将: 掌握 csv 读写、DictReader/Writer、openpyxl 基础。


csv 模块

python
import csv

# 写入
with open("users.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["姓名", "年龄", "城市"])
    writer.writerows([
        ["小明", 25, "北京"],
        ["小红", 22, "上海"],
    ])

# 读取
with open("users.csv", "r", encoding="utf-8") as f:
    reader = csv.reader(f)
    header = next(reader)  # ["姓名", "年龄", "城市"]
    for row in reader:
        print(row)

# DictReader —— 按列名访问
with open("users.csv", "r", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["姓名"], row["年龄"])  # 按列名访问

DictWriter —— 写字典

python
with open("users.csv", "w", newline="", encoding="utf-8") as f:
    fieldnames = ["姓名", "年龄", "城市"]
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({"姓名": "小明", "年龄": 25, "城市": "北京"})

openpyxl —— Excel 操作

python
from openpyxl import Workbook

# 写入
wb = Workbook()
ws = wb.active
ws["A1"] = "Hello"
ws.append(["姓名", "年龄"])  # 追加一行
ws.append(["小明", 25])
wb.save("output.xlsx")

# 读取
from openpyxl import load_workbook
wb = load_workbook("data.xlsx")
ws = wb.active
for row in ws.iter_rows(values_only=True):
    print(row)