[Python进阶] Python操作csv文件:csv

7.4 Python操作csv文件:csv

7.4.1 csv文件介绍

CSV文件是一种逗号分隔值格式的文件,通常用于存储和交换电子表格或数据库软件中的数据。它是一种纯文本格式的文件,可以方便地用各种办公软件打开和编辑。
在CSV文件中,数据以某种换行符分隔,每条记录由字段组成,字段间的分隔符是逗号或者其他字符或字符串。一些CSV文件还包含列名,通常居文件第一行。
CSV文件的规则包括:

  • 开头不留空,以行为单位。
  • 可含或不含列名,含列名则居文件第一行。
  • 一行数据不垮行,无空行。
  • 以半角符号,作分隔符,列为空也要表达其存在。
  • 列内容如存在,则用引号包含起来。
  • 列内容如存在引号,则用两个连续引号包含。
  • 文件读写时引号、逗号操作规则互逆。
  • 内码格式不限,可为ASCII、Unicode或者其他。

CSV文件通常用Excel等电子表格软件打开,也可以用各种编程语言和数据科学工具进行分析和可视化。通过合理地组织和格式化数据,CSV文件可以有效地存储和分享各种类型的数据。

7.4.2 通过Python自带的csv库操作csv文件

在Python中,你可以使用内置的 csv 模块来读取和写入CSV文件。以下是一些基本的操作:
读取CSV文件

import csv  
  
with open('file.csv', 'r') as f:  
    reader = csv.reader(f)  
    for row in reader:  
        print(row)

在这个例子中,csv.reader 返回一个读取器对象,你可以迭代这个对象来逐行读取CSV文件。每一行都以列表的形式返回,列表中的每个元素都是字符串类型。
写入CSV文件

import csv  
  
rows = [['Name', 'Age'], ['Bob', '23'], ['Alice', '24']]  
  
with open('file.csv', 'w', newline='') as f:  
    writer = csv.writer(f)  
    for row in rows:  
        writer.writerow(row)

在这个例子中,csv.writer 返回一个写入器对象,你可以使用 writerow 方法将每一行写入CSV文件。注意,如果你不在 open 函数中设置 newline=‘’,可能会在Windows下遇到额外的空行问题。

7.4.3 使用DictReader和DictWriter操作csv文件

除了上述的方式,Python的csv模块还提供了DictReader和DictWriter,可以方便地将CSV文件和字典进行转换。例如:
读取CSV文件到字典

import csv  
  
with open('file.csv', 'r') as f:  
    reader = csv.DictReader(f)  
    for row in reader:  
        print(row)

在这个例子中,csv.DictReader 返回一个读取器对象,你可以迭代这个对象来逐行读取CSV文件。每一行都以字典的形式返回,字典的键是列名,值是对应的数据。
将字典写入CSV文件

import csv  
  
rows = [{'Name': 'Bob', 'Age': '23'}, {'Name': 'Alice', 'Age': '24'}]  
  
with open('file.csv', 'w', newline='') as f:  
    fieldnames = ['Name', 'Age']  # 列名  
    writer = csv.DictWriter(f, fieldnames=fieldnames)  
    writer.writeheader()  # 写入列名  
    for row in rows:  
        writer.writerow(row)  # 写入数据行

在这个例子中,csv.DictWriter 返回一个写入器对象,你可以使用 writeheader 方法写入列名,然后使用 writerow 方法将每一行数据写入CSV文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0思必得0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值