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.DictReadercsv.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文件交互的项目,掌握这个模块将大大提高工作效率。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部