Python之csv模块

Python018

Python之csv模块,第1张

csv文件具有格式简单,快速存取,兼容性好等特点,工程、金融、商业等很多数据文件都是采用csv文件保存和处理。工作中数据处理也用到了csv,简要总结下使用经验,特别是那些由于本地兼容性导致的与官方文档的差异使用。

csv(comma Seperated Values)文件的格式非常简单,类似一个文本文档,每一行保存一条数据,同一行中的各个数据通常采用逗号(或tab)分隔。

python自带了csv模块,专门用于处理csv文件的读取和存档。

csv模块中,主要由两种方式存取csv文件:函数方法;类方法。

csv.reader(csvfile,dialect ='excel',** fmtparams)

返回一个reader对象,它将迭代给定csvfile中的行。

csvfile可以是任何支持迭代器协议的对象,并在每次next()调用其方法时返回一个字符串- 文件对象和列表对象都是合适的。如果csvfile是一个文件对象,那么它必须在平台上以“b”标志打开,这会产生影响。可以给出可选的 dialect 参数,该参数用于定义特定于CSV方言的一组参数。它可以是类的子类的实例,也可以是函数Dialect返回的字符串之一 list_dialects()。其他可选的fmtparams可以给出关键字参数来覆盖当前方言中的各个格式参数。

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

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

csvfile可以是带有write()方法的任何对象 。如果csvfile是一个文件对象,那么它必须在平台上以“b”标志打开,这会产生影响。 可以给出可选的dialect参数,该参数用于定义特定于CSV方言的一组参数。它可以是类的子类的实例,也可以是函数Dialect返回的字符串之一 list_dialects()。可以给出其他可选的fmtparams关键字参数来覆盖当前dialect中的各个格式参数。

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

创建一个像常规阅读器一样操作的对象,但将读取的信息映射到一个dict,其键由可选的 fieldnames 参数给出。 字段名 的参数是一个序列,其元素与输入数据的顺序中的字段相关联。这些元素成为结果字典的关键。如果省略 fieldnames 参数,则文件 f 的第一行中的 值 将用作字段名。如果读取的行包含的字段多于字段名序列,则将剩余数据添加 为由restkey 值键入的序列。如果读取的行的字段数少于字段名序列,则其余的键将采用可选的 restval 参数的值。任何其他可选或关键字参数都将传递给基础 reader 实例。

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

创建一个像常规编写器一样操作的对象,但将字典映射到输出行。的字段名的参数是一个序列识别在哪些值在传递给字典中的顺序按键的writerow()方法被写入到文件˚F。如果字典缺少字段名中的键,则可选的restval参数指定要写入的值。如果传递给方法的字典包含在字段名中找不到的键,则可选的extrasaction参数指示要采取的操作。如果设置为a 则被提升。如果设置为writerow()'raise'ValueError'ignore',字典中的额外值将被忽略。任何其他可选或关键字参数都将传递给基础 writer实例。

请注意,与DictReader类不同,它的fieldnames参数DictWriter不是可选的。由于Python的dict 对象没有排序,因此没有足够的信息来推断应该将行写入文件f的顺序。

兄弟,python下面自带了csv模块,直接import调用就行了

将内存中的数据写入到csv文件的话,直接open一个新文件,用csv下的writer方法就可以将数据写入到csv本地文件

如果你的数据是列表格式,可以使用一个迭代器,将数据写入文件,同时添加必要的分隔符以构成csv文件

如果数据是字典格式,需要考虑使用换行符或者其他特殊符号来分割每个字典元素(包括键和值)。键和值可以考虑使用和之前不重复的分隔符进行分割。

这样就构成了一个csv文件(csv使用分隔符分割值的文件)

操作方法如下:

1,使用读写追加的方式打开csv文件。

2,找到csv文件的结尾。

3,在结尾使用和之前csv使用的分割相同的格式进行数据添加。

4,关闭文件