python中csv库⽤法_pythoncsv库⽤法⼤全
该csv模块定义了以下功能:
返回⼀个reader对象,它将迭代给定csvfile中的⾏。 csvfile可以是任何⽀持迭代器协议的对象,并在每次__next__()调⽤其⽅法时返回⼀个字符串- ⽂件对象和列表对象都是合适的。如果csvfile是⼀个⽂件对象,则应该打开它newline=''。[1]可以给出 可选的 ⽅⾔参数,该参数⽤于定义特定于CSV⽅⾔的⼀组参数。它可以是类的⼦类的实例,也可以是函数Dialect返回的字符串之⼀ list_dialects()。其他可选的fmtparams可以给出关键字参数来覆盖当前⽅⾔中的各个格式参数。有关⽅⾔和格式参数的完整详细信息,请参阅“ ⽅⾔和格式参数”⼀节。
从csv⽂件读取的每⼀⾏都作为字符串列表返回。除⾮QUOTE_NONNUMERIC指定了format选项(在这种情况下,未加引号的字段将转换为浮点数),否则不会执⾏⾃动数据类型转换。
⼀个简短的⽤法⽰例:
>>>
>>>import csv
>>>with open('eggs.csv', newline='') as csvfile:
... spamreader = ader(csvfile, delimiter=' ', quotechar='|')
... for row in spamreader:
... print(', '.join(row))
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam
csv.writer(csvfile,dialect ='excel',** fmtparams)
返回⼀个编写器对象,负责将⽤户的数据转换为给定的类⽂件对象上的分隔字符串。csvfile可以是带有write()⽅法的任何对象 。如果csvfile是⽂件对象,则应使⽤newline='' [1]打开它 。 可以给出可选的⽅⾔参数,该参数⽤于定义特定于CSV⽅⾔的⼀组参数。它可以是类的⼦类的实例,也可以是 函数Dialect返回的字符串之⼀list_dialects()。可以给出其他可选的fmtparams关键字参数来覆盖当前⽅⾔中的各个格式参数。有关⽅⾔和格式参数的完整详细信息,请参阅部分⽅⾔和格式参数。为了使与实现DB API的模块接⼝尽可能简单,将值None写为空字符串。虽然这不是可逆转换,但它可以更容易地将
SQL NULL数据值转储到CSV⽂件,⽽⽆需预处理从cursor.fetch*调⽤返回的数据。所有其他⾮字符串数据str()在写⼊之前都会进⾏字符串化。
⼀个简短的⽤法⽰例:
import csv
with open('eggs.csv', 'w', newline='') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
将⽅⾔与名称联系起来。 name必须是⼀个字符串。⽅⾔可以通过传递⼦类Dialect,或通过fmtparams关键字参数或两者来指定,并使⽤关键字参数覆盖⽅⾔的参数。有关⽅⾔和格式参数的完整详细信息,
请参阅“ ⽅⾔和格式参数”⼀节。
csv.unregister_dialect(name)
从⽅⾔注册表中删除与名称关联的⽅⾔。Error如果name不是已注册的⽅⾔名称,则引发An 。
<_dialect(name)
返回与姓名相关的⽅⾔。Error如果name不是已注册的⽅⾔名称,则引发 An 。此函数返回不可变的 Dialect。
csv.list_dialects()
返回所有已注册⽅⾔的名称。
csv.field_size_limit([ new_limit] )
返回解析器允许的当前最⼤字段⼤⼩。如果给出new_limit,则这将成为新限制。
该csv模块定义了以下类:
classcsv.DictReader(f,fieldnames = None,restkey = None,restval = None,dialect ='excel',* args,** kwds)
创建⼀个像常规阅读器⼀样操作的对象,但将每⾏中的信息映射到OrderedDict 其键由可选的fieldnames参数给出。
的字段名的参数是⼀个序列。如果省略fieldnames,则⽂件f的第⼀⾏中的值将⽤作字段名。⽆论字段名如何确定,有序字典都保留其原始顺序。
如果⼀⾏包含的字段多于字段名,则将剩余数据放⼊⼀个列表中,并使⽤restkey指定的字段名(默认为None)进⾏存储。如果⾮空⾏的字段数少于字段名,则缺少的值将填⼊None。
所有其他可选或关键字参数都传递给基础 reader实例。
在版本3.6中更改:返回的⾏现在是类型OrderedDict。
⼀个简短的⽤法⽰例:
python怎么读csv数据>>>
>>>import csv
>>>with open('names.csv', newline='') as csvfile:
... reader = csv.DictReader(csvfile)
... for row in reader:
... print(row['first_name'], row['last_name'])
...
Eric Idle
John Cleese
>>>print(row)
OrderedDict([('first_name', 'John'), ('last_name', 'Cleese')])
classcsv.DictWriter(f,fieldnames,restval ='',extrasaction ='raise',dialect ='excel',* args,** kwds)
创建⼀个像常规编写器⼀样操作的对象,但将字典映射到输出⾏。的字段名的参数是⼀个sequence标识,其中在传递给字典值的顺序按键的writerow()⽅法被写⼊到⽂件 ˚F。如果字典缺少字段名中的键,则可选的restval参数指定要写⼊的值。如果传递给⽅法的字典包含在字段名中不到的键 ,则可选的extrasaction参数指⽰要采取的操作。如果设置为, 则引发默认值a 。如果设置为
writerow()'raise'ValueError'ignore',字典中的额外值将被忽略。任何其他可选或关键字参数都将传递给基础 writer实例。
请注意,与DictReader类不同,类的fieldnames参数DictWriter不是可选的。
⼀个简短的⽤法⽰例:
import csv
with open('names.csv', 'w', newline='') as csvfile:
fieldnames = ['first_name', 'last_name']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})
类csv.Dialect
的Dialect类是依赖于主要⽤于它的属性,这是⽤来定义⼀个特定的参数的容器类reader或writer实例。
类l
在excel类定义的Excel⽣成CSV⽂件的通常的性质。它以⽅⾔名称注册'excel'。
类l_tab
所述excel_tab类定义Excel⽣成的制表符分隔的⽂件的通常的性质。它以⽅⾔名称注册'excel-tab'。
类csv.unix_dialect
的unix_dialect类定义在UNIX系统上,即,使⽤⽣成的CSV⽂件的通常性质'\n'如线路终端机和引⽤的所有字段。它以⽅⾔名称注
册'unix'。
版本3.2中的新功能。
类csv.Sniffer
本Sniffer类⽤来推断⼀个CSV⽂件的格式。
本Sniffer类提供了两个⽅法:
sniff(样本,分隔符=⽆)
分析给定的样本并返回Dialect反映到的参数的⼦类。如果给出了可选的delimiters参数,则将其解释为包含可能的有效分隔符的字符串。has_header(样本)
分析⽰例⽂本(假定为CSV格式), True如果第⼀⾏看起来是⼀系列列标题,则返回。
使⽤⽰例Sniffer:
with open('example.csv', newline='') as csvfile:
dialect = csv.Sniffer().ad(1024))
csvfile.seek(0)
reader = ader(csvfile, dialect)
# ... process CSV file contents here ...
该csv模块定义以下常量:
csv.QUOTE_ALL
指⽰writer对象引⽤所有字段。
csv.QUOTE_MINIMAL
指⽰writer对象只引⽤那些包含特殊字符,如字段分隔符,quotechar或任何字符lineterminator。
csv.QUOTE_NONNUMERIC
指⽰writer对象引⽤所有⾮数字字段。
指⽰读者将所有⾮引⽤字段转换为float类型。
csv.QUOTE_NONE
指⽰writer对象永远不引⽤字段。当输出数据中出现当前 分隔符时,它前⾯是当前的escapechar 字符。如果未设置escapechar,则Error 在遇到需要转义的任何字符时,编写器将引发。
指⽰reader不对引号字符执⾏特殊处理。
该csv模块定义了以下异常:
异常csv.Error
检测到错误时由任何功能引发。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。