Python CSV文件操作:读取、写入与数据处理完整指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Python中的CSV文件操作

CSV(逗号分隔值)是最常用的表格数据存储格式之一。从Excel表格导出到Web服务与数据库之间的数据交换,CSV格式应用广泛。

Python提供了高效的CSV文件处理工具。你可以使用内置的csv模块进行基础操作,也可以借助强大的pandas库进行数据分析。本文将详细介绍CSV文件的读取、写入、数据处理、错误预防以及大文件性能优化方法。

CSV格式基础

CSV文件结构

CSV是一种纯文本格式。文件中的每一行包含一条记录,记录中的值由特定分隔符分隔。默认使用逗号,但也可以使用分号、制表符或竖线。

一个标准CSV文件的内容如下:

姓名,年龄,城市
张三,25,北京
李四,30,上海

CSV格式的优势

CSV格式具有以下重要优点:

  • 结构简单,易于阅读
  • 被大多数程序和编程语言支持
  • 文件体积相比其他格式更小
  • 可用文本编辑器直接修改
  • 在不同系统间交换数据时通用性强

使用csv模块操作CSV

读取CSV文件基础

Python标准库中的csv模块适合进行基本的CSV文件操作。简单读取数据的方法如下:

import csv

with open("data.csv", newline='', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

执行结果:

['姓名', '年龄', '城市']
['张三', '25', '北京']
['李四', '30', '上海']

使用表头读取数据

为了方便操作命名列,可以使用csv.DictReader:

with open("data.csv", encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["姓名"], row["城市"])

此方法会自动为每一行创建字典,键名来自文件的第一行(表头)。

写入数据到CSV文件

简单行写入

基本的写入方式使用csv.writer:

with open("output.csv", mode='w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(["姓名", "年龄"])
    writer.writerow(["王五", 35])

写入字典数据

对于结构化数据,使用csv.DictWriter更方便:

data = [
    {"姓名": "赵六", "年龄": 28},
    {"姓名": "孙七", "年龄": 40},
]

with open("people.csv", "w", newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=["姓名", "年龄"])
    writer.writeheader()
    writer.writerows(data)

读写参数配置

csv模块支持多种参数自定义:

  • delimiter:指定字段分隔符
  • quotechar:用于包裹值的引号字符
  • skipinitialspace:忽略分隔符后的空格
  • lineterminator:行结束符

使用pandas库操作CSV

安装与导入pandas

pandas库提供了更强大的CSV文件处理能力:

pip install pandas

用pandas读取CSV文件

读取CSV文件的主要方法:

import pandas as pd

df = pd.read_csv("data.csv")
print(df.head())

pandas会自动将CSV数据加载为DataFrame对象,方便进行数据筛选、聚合和可视化等高级操作。

博客

书籍推荐