csv模块,python的csv标准库,Python标准库: csv模块——CSV文件的读写

 2023-09-25 阅读 27 评论 0

摘要:CSV简介CSV(Comma Separated Values,逗号分隔值)也称字符分隔值,因为分隔符可以不是逗号,是一种常用的文本格式,用以存储表格数据,包括数字或者字符。很多程序在处理数据时都会碰到CSV这种格式的文件,它的使用是比较广泛的(Kaggle上

CSV简介

CSV(Comma Separated Values,逗号分隔值)也称字符分隔值,因为分隔符可以不是逗号,是一种常用的文本格式,用以存储表格数据,包括数字或者字符。很多程序在处理数据时都会碰到CSV这种格式的文件,它的使用是比较广泛的(Kaggle上一些题目提供的数据就是csv格式),csv虽然使用广泛,但却没有通用的标准,所以在处理csv格式时常常会碰到麻烦,幸好Python内置了csv模块。

该模块能够允许用户使用CSV格式将数据以Excel的格式读写。同时可以使其他应用理解CSV格式,或者定义自己的专用CSV格式。

csv模块使用reader和writer对象读写序列。用户还可以使用DictReader和DictWriter读写字典中的数据。

模块内容

csv模块,csv.reader(csvfile, dialect=‘excel’, **fmtparams)

返回一个reader对象,该对象在给定的csvfile中以行为单位进行迭代。

csvfile是一个支持迭代运算的对象,它需要有一个__next__()方法在每一次迭代的时候返回一个字符串——文件对象和字符串列表对象都符合这个要求。如果csvfile是一个文件对象,那么在open这个文件的时候需要加入newline=''的参数。

dialect参数是可选的,用于定义一组对应方言的参数。他可以是Dialect类的子类或者实例或者是list_dialects()返回的任何一个字符串。

还有可选的参数fmtparams用于覆盖当前设置的方言中的一些参数,具体需要看方言和格式参数的设置部分。

从csv文件读取的每行都作为字符串列表返回,通过迭代csv.reader函数返回的是一个可迭代的对象,该对象每一次迭代会返回一个字符串列表。除非指定了QUOTE_NONNUMERIC格式选项,否则不执行自动数据类型转换(在这种情况下,未引用的字段将转换为浮点数)。

python re模块,一个例子:

>>> import csv

>>> with open('eggs.csv', newline='') as csvfile:

... spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')

... for row in spamreader:

... print(', '.join(row))

python tmp。Spam, Spam, Spam, Spam, Spam, Baked Beans

Spam, Lovely Spam, Wonderful Spam

csv.writer(csvfile, dialect=‘excel’, **fmtparams)

返回一个writer对象,负责将用户的数据转换为给定的类文件对象的分隔字符串。

csvfile可以是任何带有write()方法的对象。如果csvfile是一个文件对象,那么在open这个文件的时候需要加入newline=''的参数。

dialect参数是可选的,用于定义一组对应方言的参数。他可以是Dialect类的子类或者实例或者是list_dialects()返回的任何一个字符串。

python处理csv。还有可选的参数fmtparams用于覆盖当前设置的方言中的一些参数,具体需要看方言和格式参数的设置部分。

为了尽可能容易地与实现DB API的模块进行接口,该值None将被写为空字符串。虽然这不是一个可逆的转换,它可以更容易地将SQL NULL数据值转储到CSV文件。而无需预处理从cursor.fetch*调用返回的数据。所有其他非字符串数据str()在写入之前都会被字符串化。

每一次写入一行可以使用csv.writer返回的对象的writerow方法写入,传入的参数需要是一个字符串列表。

一个例子:

import csv

with open('eggs.csv', 'w', newline='') as csvfile:

csv文件python?spamwriter = csv.writer(csvfile, delimiter=' ',

quotechar='|', quoting=csv.QUOTE_MINIMAL)

spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])

spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

csv.register_dialect(name[, dialect[, **fmtparams]])

在name和dialect之间建立关联。

Python的csv,其中方言可以通过Dialect的子类或者通过传递fmtparams关键字参数或者两者,通过覆盖方言参数的关键字参数来指定方言。

csv.unregister_dialect(name)

解除name与方言之间的关联。

如果name之前并没有注册过,则会发生一个Error。

csv.get_dialect(name)

返回name关联的方言。

python读取csv某一列、该方法返回的是一个不可变的Dialect。

如果name之前并没有注册过,则会发生一个Error。

csv.list_dialects()

返回所有注册了的方言的名称。

csv.field_size_limit([new_limit])

返回解析器允许的当前最大字段大小。

python怎么导入csv文件,如果给出new_limit,这将成为新的限制。

未完待续

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/95507.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息