本文目录一览:
Python csv库整理(部分)
近期,笔者到一些数据竞赛网站进行观察学习,发现很多数据是以csv文件处理的(废话).因而,磨刀不误砍柴工,笔者先对Python的csv库进行学习.
csv模块实现了CSV格式表单数据的读写.这可以以一个兼容Excel的方式读写其数据文件,csv模块中的reader和writer类被用来读写序列化的数据.也可以使用DictReader类和DictWriter类以字典的方式读取数据.
返回一个reader对象,该对象逐行遍历csvfile(文件和列表均适用,但是文件的话应该newline=''.
默认每一行读取一个字符串组成的列表(而非数值,除非修改QUOTE_NONUMERIC).
返回一个writer对象,负责将数据在给定的文件类对象上转换成带分隔符的字符串.csvfile(只要该对象有write()方法,文件的话应该newline=''.)
这两个方法可以把name字符串和dialect关联/脱钩.dialect可以是Dialect的子类,或者fmtparams的关键字参数.
返回一个Dialect对象为name的变种,若其未注册,抛出Error.
返回已经注册的所有变种的 名称
返回当前解析器允许的最大字段大小,如果制定了参数,参数将成为新的最大字段大小.
该对象操作上类似reader,但是把每行中的信息映射到一个字典,字典的键由fieldnames给出
fieldname的参数是一个序列sequence [1] ,如果参数缺省,默认第一行的值作为字段名.
如果某一行中的字段多于字段名(比如说约定有5项属性,但是这一行却出现了6个数据),则其余字段将放入列表中,字段名由 restkey 指定(默认为 None)。如果非空白行的字段少于字段名,则缺少的值将用 None 填充。
#其实这玩意应该就跟各种填表里面的备注用法差不多.
3.8中返回的行是dict类型.
该对象操作上类似reader,但是把每行中的信息映射到一个字典,字典的键由fieldnames给出,fieldname参数是不可缺省的.restval用来指定字典缺少键的时候要写入的值.extrasaction用于指定关键键在fieldname中找不到的情况的处理机制.'raise'引发ValueError,而'ignore'则会被忽略.
这个类被用来瑞段csv文件的格式
以下诸类均在括号中标注了在其变种注册表中的名称
定义了Excel生成的csv文件的常规属性.('excel')
定义了Excel生成的,tab分割的csv文件的常规属
性.('excel-tab')
定义了UNIX系统上生成的csv文件的常规属性('unix'):
任意可能发生的csv库函数错误.
参考链接
Python3.8.2文档中关于csv库的相关文档
python生成csv文件一定要用vscode打开吗
python生成csv文件一定要用vscode打开的,因为csv编辑的数据都是通过固定的数据格式进行生成的,只能用vscode软件才能识别数据正常进行打开
Python之csv模块
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的顺序。