Python 常用模块(一):csv模块
在Python编程中,处理数据时常常需要与CSV(Comma-Separated Values)文件进行交互。CSV文件是一种常见的文本文件格式,用于存储表格数据,特别适合于电子表格程序(如Excel)和数据库。Python内置了csv
模块,使得对CSV文件的读写变得简单高效。
一、csv模块概述
csv
模块提供了读取和写入CSV文件的功能。它支持不同的分隔符,并提供了灵活的方式来处理CSV格式的数据。csv.reader
用于读取CSV文件,csv.writer
用于写入CSV文件。
二、基本用法
1. 读CSV文件
使用csv.reader
可以从CSV文件中读取数据。代码示例如下:
import csv
# 打开CSV文件
with open('data.csv', mode='r', encoding='utf-8') as file:
reader = csv.reader(file)
# 逐行读取数据
for row in reader:
print(row) # 将每行内容以列表形式打印出来
在这个示例中,我们使用with
语句打开了一个名为data.csv
的CSV文件,然后通过csv.reader
创建了一个读取器(reader)。利用for循环,我们可以逐行读取文件内容,每一行都以列表的形式输出。
2. 写CSV文件
使用csv.writer
可以将数据写入CSV文件。以下是一个简单的写入示例:
import csv
# 打开CSV文件(写入模式)
with open('output.csv', mode='w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
# 写入表头
writer.writerow(['姓名', '年龄', '城市'])
# 写入数据
writer.writerow(['张三', 25, '北京'])
writer.writerow(['李四', 30, '上海'])
writer.writerow(['王五', 28, '广州'])
在这个示例中,output.csv
文件以写入模式打开并写入了一些数据。使用writerow
方法可以写入一行数据。务必注意,打开文件时设置newline=''
可以避免在Windows系统中出现空行。
三、处理不同的分隔符
虽然CSV意指用逗号分隔的值,但在实际应用中,分隔符可能会有所不同,例如制表符(\t
)或分号(;
)。可以通过设置delimiter
参数来指定分隔符。以下是一个使用分号作为分隔符的读取示例:
import csv
# 打开CSV文件
with open('data_semicolon.csv', mode='r', encoding='utf-8') as file:
reader = csv.reader(file, delimiter=';') # 指定分隔符为分号
for row in reader:
print(row)
四、字典形式读写
csv
模块还支持使用字典来读写CSV文件,利用csv.DictReader
和csv.DictWriter
可以更方便地处理具有列名的数据。
import csv
# 读取字典形式的CSV文件
with open('data.csv', mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
print(row) # 每行以字典形式打印
写入字典形式的CSV文件:
import csv
# 写入字典形式的CSV文件
with open('output_dict.csv', mode='w', newline='', encoding='utf-8') as file:
fieldnames = ['姓名', '年龄', '城市']
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader() # 写入表头
# 写入数据
writer.writerow({'姓名': '张三', '年龄': 25, '城市': '北京'})
writer.writerow({'姓名': '李四', '年龄': 30, '城市': '上海'})
五、总结
在本文中,我们介绍了Python中csv
模块的基本用法,包括如何读取和写入CSV文件,处理不同的分隔符,以及使用字典读写CSV文件。csv
模块的简单易用使它成为处理表格数据时不可或缺的工具。同时,对于需要频繁与CSV文件交互的项目,掌握这个模块将大大提高工作效率。