当前位置:首页 > Python > 正文

Python CSV模块详解(零基础掌握CSV文件读写与数据处理)

在数据分析、自动化办公和Web开发中,经常需要处理CSV(Comma-Separated Values)格式的文件。Python内置的csv模块提供了强大而简洁的工具来读写CSV文件。本教程将从零开始,手把手教你使用csv模块,即使你是编程小白也能轻松上手!

Python CSV模块详解(零基础掌握CSV文件读写与数据处理) csv模块  CSV文件读写 Python数据处理 csv.reader与csv.writer 第1张

什么是CSV文件?

CSV是一种纯文本格式,用于存储表格数据。每一行代表一条记录,字段之间用逗号(或其他分隔符)分隔。例如:

姓名,年龄,城市张三,25,北京李四,30,上海王五,22,广州

导入csv模块

使用前,只需一行代码导入模块:

import csv

读取CSV文件:使用csv.reader

假设我们有一个名为users.csv的文件,内容如上所示。我们可以这样读取它:

import csv# 打开CSV文件with open('users.csv', 'r', encoding='utf-8') as file:    reader = csv.reader(file)        # 遍历每一行    for row in reader:        print(row)

输出结果将是:

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

写入CSV文件:使用csv.writer

要创建或写入一个新的CSV文件,可以使用csv.writer

import csvdata = [    ['姓名', '年龄', '城市'],    ['赵六', '28', '深圳'],    ['孙七', '35', '杭州']]with open('new_users.csv', 'w', newline='', encoding='utf-8') as file:    writer = csv.writer(file)    writer.writerows(data)

注意:newline=''参数是为了避免在Windows系统中写入多余的空行。

使用DictReader和DictWriter处理带标题的CSV

当CSV文件有标题行时,使用csv.DictReadercsv.DictWriter会更方便,因为它们将每行数据映射为字典:

# 读取with open('users.csv', 'r', encoding='utf-8') as file:    reader = csv.DictReader(file)    for row in reader:        print(f"{row['姓名']} 来自 {row['城市']},今年 {row['年龄']} 岁")# 写入fieldnames = ['姓名', '年龄', '城市']new_data = [    {'姓名': '周八', '年龄': '27', '城市': '成都'},    {'姓名': '吴九', '年龄': '31', '城市': '西安'}]with open('more_users.csv', 'w', newline='', encoding='utf-8') as file:    writer = csv.DictWriter(file, fieldnames=fieldnames)    writer.writeheader()  # 写入标题行    writer.writerows(new_data)

常见问题与技巧

  • 编码问题:中文内容建议使用encoding='utf-8'打开文件。
  • 分隔符不是逗号:可通过delimiter参数指定,如csv.reader(file, delimiter='\t')处理TSV文件。
  • 处理引号和特殊字符csv模块会自动处理包含逗号或换行符的字段(通常用双引号包裹)。

总结

通过本教程,你已经掌握了Python csv模块的基本用法,包括使用csv.readercsv.writer进行基础读写,以及使用DictReaderDictWriter处理结构化数据。这些技能是Python数据处理的重要基础,也是自动化处理CSV文件读写任务的关键。

无论你是初学者还是有一定经验的开发者,熟练运用Python csv模块都能极大提升工作效率。快去试试吧!