Csv文件由逗号分隔,这是一种纯文本格式。不能指定字体颜色、单元格宽度高度等样式,不能合并单元格,也没有多工作表等功能。你可以用Excel来输入它们。本文主要介绍在Python中使用csv模块的基础教程。有需要的朋友可以参考一下。
1.csv简介
CSV(逗号分隔值),即逗号分隔值(也称为字符分隔值,因为分隔符可以不是逗号),是一种常用的文本。
格式,用于存储表格数据,包括数字或字符。很多程序在处理数据的时候会遇到csv格式的文件,它的用途比CSV要好。
广泛(Kaggle上某些专题提供的数据是csv格式),csv应用广泛,但没有通用标准,所以正在处理中。
格式经常出问题。幸运的是,python内置了csv模块。下面是csv模块中一些最常用的函数。
欲了解更多信息,请参考:https://docs.python.org/2/library/csv.html#module-csv
2.csv模块中的功能
阅读器(csvfile,dialect='excel ',**fmtparams)
参数描述:
Csvfile必须是支持迭代器的对象,如果是文件对,它可以是文件对象或列表对象。
喜欢,你需要添加' b '标志参数时,你打开它。
方言,编码风格,默认为excel的风格,即逗号(,)分隔。方言也支持定制。通过调用register_dialect方法注册,下面会提到。
Fmtparam是一个格式化参数,用于覆盖由前面的dialect对象指定的编码样式。
导入csv
使用open('test.csv ',' rb ')作为myFile:
lines=csv.reader(myFile)
对于线中的线:
打印行
“Test.csv”是文件名,“rb”中的R表示“读取”模式。因为是文件对象,所以加' b '。Open()返回了一个文件对象。
MyFile,reader(myFile)只传入了第一个参数,另外两个参数默认以excel风格读取。Reader()返回一个
对象readerlines,lines,lines一个列表,当调用它的方法lines.next()时,它将返回一个字符串。上述程序的效果是转换csv
文件中的文本按行打印,每行的元素用逗号分隔符','分隔。
在我的test.csv文件中,存储的数据如下:
程序输出:
['1', '2']
['3 ',' a']
['4 ',' b']
补充:reader对象还提供了一些方法:line_num,dial,next()
编写器(csvfile,dialect='excel ',**fmtparams)
参数的含义同上,这里就不赘述了,直接上套路:
用open('t.csv ',' wb ')作为我的文件:
myWriter=csv.writer(myFile)
myWriter.writerow([7,' g'])
myWriter.writerow([8,' h'])
myList=[[1,2,3],[4,5,6]]
myWriter.writerows(myList)
“w”表示写入模式。
首先,open()函数在当前路径中打开名为“t.csv”的文件。如果该文件不存在,将创建它并返回myFile文件对象。
Csv.writer(myFile)返回编写器对象myWriter。
writerow()方法逐行写入,writerows方法一次写入多行。
注意:如果文件' t.csv '预先存在,调用writer函数将首先清除原始文件中的文本,然后执行writerow/writerows方法。
补充:除了writerow和writerows,writer对象还提供了一些其他的方法:writeheader和dial。
register_dialect(name, [dialect, ]**fmtparams)
此功能用于自定义拨号。
参数描述:
名称,您的自定义拨号的名称,例如默认为“excel”,您可以将其定义为“方言”
[方言,]**fmtparams,方言的格式参数,包括分隔符(分隔符,默认为逗号),quotechar,
引用等。您可以参考刻度盘和格式化参数。
CSV . register _ dialect(' mydialect ',分隔符='| ',引用=csv。报价_全部)
上面一行程序定义了一个名为MyDial的方言,只设置了两个参数,delimiter和quoting,其他都还在用。
默认值,用“|”作为分隔符。然后我们就可以像' excel '一样使用' mydialect '了。我们来看看效果:
我将以下数据存储在我的test.csv中:
以“我的拨号”样式打印:
使用open('test.csv ',' rb ')作为myFile:
lines=csv.reader(myFile,' mydialect ')
打印行数
对于线中的线:
打印行
输出:
['1,2', '3']
['4,5', '6']
如你所见,现在' | '被用作分隔符,1和2被组合成一个字符串(因为1和2之间的分隔符是逗号,而我的拨号式分隔
是“|”),3单个字符串。
对于writer()函数,还可以传入mydialect作为参数,这里就不赘述了。
unregister_dialect(name)
此功能用于注销自定义拨号。
此外,csv模块还提供了get_dialect(name)、list_dialects()、field_size_limit([new_limit])等函数。这些都是比较
简单,你可以自己试试。例如,list_dialsects()函数将列出当前csv模块中的所有dial:
print csv.list_dialects()
输出:
['excel-tab ',' excel ',' mydialect']
'我的表盘'是自定义的,' excel-tab '和' excel '都是内置的表盘,其中' excel-Tab '类似于' Excel '。
只是它使用制表符作为分隔符。
csv模块还定义了
一些类:字典阅读器、字典书写器、方言等。DictReader和DictWriter类似于Reader和Writer。
一些常量:QUOTE_ALL,QUOTE_MINIMAL,QUOTE_NONNUMERIC等。这些常量可以用作拨号器和格式化参数的值。
先写到这里,剩下的以后用,更新。
总结
关于Python中csv模块的基本使用,本文到此结束。有关Python csv模块使用的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。