Python CSV模块

本文介绍了Python中CSV模块的相关知识。CSV是电子表格和数据库常用的导入导出格式,该模块可实现表格数据的读写。文中阐述了常用功能,如读写时分隔符和引用符的设置,quoting的可选值;还介绍了字典方式读写的参数格式,并给出官方资料链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSV

CSV(逗号分隔值)格式是电子表格和数据库最常用的导入和导出格式。

该csv模块实现了以CSV格式读取和写入表格数据的类。它允许程序员说“以Excel首选格式编写此数据”或“从Excel生成的此文件中读取数据”,而不知道Excel使用的CSV格式的精确细节。程序员还可以描述其他应用程序理解的CSV格式或定义自己的专用CSV格式。

常用功能

# 读取csv文件
import csv
with open('a.csv', 'rb') as f:		# 采用b的方式处理可以省去很多问题
    reader = csv.reader(f)
    for row in reader:
        # do something with row, such as row[0], row[1]


# 写入csv文件
import csv
with open('a.csv', 'wb') as f:        # 采用b的方式处理可以省去很多问题
    writer = csv.writer(f)
    writer.writerows(someiterable)

默认情况下,读和写使用逗号做分隔符(delimiter),用双引号作为引用符(quotechar),当遇到特殊情况是,可以根据需要手动指定字符,例如:

import csv
with open('a.csv', 'rb') as f:
    # 指定冒号作为分隔符,并且指定quote方式为不引用
    reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)
    for row in reader:
        print(row)

quoting的可选项有:
1、QUOTE_ALL
指示writer对象引用所有字段。

2、QUOTE_MINIMAL
指示writer对象只引用那些包含特殊字符,如字段分隔符,quotechar或任何字符 lineterminator。

3、QUOTE_NONNUMERIC
指示writer对象引用所有非数字字段。
指示读者将所有非引用字段转换为float类型。

4、QUOTE_NONE
指示writer对象永远不引用字段。当输出数据中出现当前 分隔符时,它前面是当前的escapechar 字符。如果未设置escapechar,则Error在遇到任何需要转义的字符时,编写器将引发。

指示reader不对引号字符执行任何特殊处理。

字典方式读写

参数格式如下:

class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)

class csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

fieldnames指定字典的key值,如果reader里没有指定即默认第一行元素,在writer里一定要指定这个

# 读
import csv
with open('a.csv') as f:
    reader = csv.DictReader(f)

# 写
import csv
with open('a.csv', 'w') as f:
    fieldnames = ['key1', 'key2']
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'key1': 'a', 'key2': 'b'})
    writer.writerow({'key1': 'c', 'key2': 'd'})

以上内容为csv模块的浅知识,可以作为了解来参考

官方资料

https://docs.python.org/3.6/library/csv.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值