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,这将成为新的限制。
未完待续
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态