Python中读写CSV文件的完整指南:列表与字典模式详解

周叙
周叙
发布时间:2026-10-15| 4人浏览过
原创

本文详细介绍Python中如何使用内置csv库读取和写入CSV文件。涵盖以列表形式进行单行及批量写入、读取数据,以及利用字典形式写入表头与数据、直接解析为有序字典读取的方法。同时提供文件打开模式(r, w, a, r+, w+, a+, b)的详细说明,帮助开发者掌握CSV数据处理的核心技巧。

前言

CSV(Comma-Separated Values,逗号分隔值)是一种以逗号为分隔符、按行存储的纯文本文件格式。需要注意的是,CSV中所有的值在存储时均表现为字符串类型,即使内容是数字也需视为字符串处理。若CSV文件中包含中文字符,建议在读写时明确指定utf-8编码,以确保数据正确显示。

1.导入CSV库

Python标准库中自带了csv模块,无需额外安装。在进行CSV文件的读写操作前,只需在代码开头导入该库即可直接使用相关功能。

import csv

2.对CSV文件进行读写

2.1 用列表形式写入CSV文件

语法说明:csv.writer(f) 用于创建写入对象。该对象支持 writerow(列表) 方法用于单行写入,以及 writerows(嵌套列表) 方法用于批量写入多行数据。使用这些方法时无需手动调用保存操作,文件会自动处理写入过程。

import csv
header = ['name','age','QQ_num','wechat']
data = [['suliang','21','787991021','lxzy787991021']]
with open ('information.csv','w',encoding='utf-8',newline='') as fp:
    # 写
    writer =csv.writer(fp)
    # 设置第一行标题头
    writer.writerow(header)
    # 将数据写入
    writer.writerows(data)

结果:

注意:打开文件时应指定模式为 'w',表示文本写入。此外,打开文件时必须指定参数 newline='',否则在Windows系统下每写入一行可能会额外多出一个空行,导致格式错误。

2.2 用列表形式读取CSV文件

语法说明:csv.reader(f, delimiter=',')。reader 返回的是一个生成器对象,每次调用可读取一行数据,每行数据以列表格式返回。可以通过 delimiter 参数自定义分隔符,默认为逗号。

import csv

with open('information.csv',encoding='utf-8')as fp:
    reader = csv.reader(fp)
    # 获取标题
    header = next(reader)
    print(header)
    # 遍历数据
    for i in reader:
        print(i)

结果:

读取文件时,务必确保文件路径正确,若不确定相对路径,建议使用绝对路径以避免错误。要获取CSV的具体内容,需要遍历reader对象并输出数据。

2.3 用字典形式写入csv文件

语法说明:csv.DictWriter(f, fieldnames)。写入时,可先使用 writeheader() 方法写入标题行,随后使用 writerow(字典格式数据行) 写入单条数据,或使用 writerows(多行数据列表) 批量写入。

import csv
header = ['name','age']
data = [{'name':'suliang','age':'21'},
        {'name':'xiaoming','age':'22'},
        {'name':'xiaohu','age':'25'}]
with open ('information.csv','w',encoding='utf-8',newline='') as fp:
    # 写
    writer =csv.DictWriter(fp,header)
    # 写入标题
    writer.writeheader()
    # 将数据写入
    writer.writerows(data)

结果:

2.4 用字典形式读取csv文件

语法说明:csv.DictReader(f, delimiter=',')。该函数会将CSV的标题行与每一列数据自动组装成有序字典(OrderedDict)格式。这种方式无需再单独读取并处理标题行,直接遍历即可获取键值对数据。

import csv
with open('information.csv',encoding='utf-8')as fp:
    reader = csv.DictReader(fp)
    for i in reader
        print(i)

结果:

附:csv读写的模式

  • r:以只读方式打开文件,允许读取文件信息。
  • w:以写入方式打开文件,可向文件写入信息。如果文件已存在,则先清空文件内容,再写入新数据。
  • a:以追加模式打开文件,文件指针移至文件末尾。如果文件不存在,则创建新文件。
  • r+:以读写方式打开文件,允许对文件进行读和写操作。
  • w+:先消除文件原有内容,再以读写方式打开文件。
  • a+:以读写方式打开文件,文件指针移至末尾,允许在末尾追加或从头读取。
  • b:以二进制模式打开文件,通常用于非文本文件处理。

结语

到此这篇关于在Python中读取和写入CSV文件详情的文章就介绍到这了,更多相关Python读写CSV文件内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。