欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习:读取csv文件

程序员文章站 2022-06-01 14:11:11
...

CSV是Conma Sepatrate Values(逗号分隔值)的缩写,文档的内容是由‘,’分隔的一列列数据构成的。CSV格式是电子表格和数据库最常用的导入和导出格式。
CSV模块实现了以CSV格式读取和写入表格数据,它允许程序员以Excel首选格式写入数据,或者从Excel生成的文件中读取数据。

Excel 与CSV文档

(1) Excel创建csv文档

Excel是我们经常用来制作表格和进行一些数据处理的工具,Excel也可以被用来创建csv文件。
在Excel文档中编辑如下数据
Python学习:读取csv文件
在选择保存的时候文件格式可以选择csv格式,保存完毕之后便生成了csv格式文件。
Python学习:读取csv文件
为了更好的理解逗号分隔值(csv)文件,我们将刚刚保存好的xxx.csv文件以记事本(.txt)打开我们可以看到如下结果
Python学习:读取csv文件
原本表格中各个数据之间用’,’隔开了,这样,我们便能很直观的理解逗号分隔的意思了。

Python的CSV模块内容

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

    参数说明:
    csvfile: 要使用的对象csv文件,csvfile是任何支持迭代器协议的对象,可以是文件对象或者列表对象。如果csvfile是一个文件对象,那么它可以被 newline=” 打开,并且其选择打开模式时需要加“b”标志参数。”r”表示读模式
    dialect:编码风格,默认为excel的风格(使用‘,’分隔)。同时,其也支持自定义。给出的可选dialect参数被用于定义特定于CSV dialect的一组参数。它可以是dialect类子类的实例,也可以是list_dialects()函数返回的字符串之一。
    fmtparam: 格式化参数,用来覆盖之前dialect参数指定的编码风格。


一个简短的使用例子:
import csv

with open('test.csv',r) as csvfile:  
    reader = csv.reader(csvfile)
    for line in reader:
        print(line)
结果如下:

[‘No.’, ‘Color’, ‘Root’]
[‘1’, ‘1’, ‘1’]
[‘2’, ‘2’, ‘1’]
[‘3’, ‘2’, ‘1’]
[‘4’, ‘1’, ‘1’]

  • csv.writer(csvfile, dialect=’excel’, **fmtparams)
    与读取文件函数csv.reader()类似,向csv文件中写入数据。

csv.writerow() 向csv文件中写入一行数据
csv.writerows() 向csv文件中写入数行数据

一个简短的使用例子:
import csv

name = ["No.","Color","Root"]
r1 = ["1","1","1"]
r2 = ["2","2","1"]
r3 = [["3","2","1"],["4","1","1"]]
with open('test.csv','w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(name)
    writer.writerow(r1)
    writer.writerow(r2)
    writer.writerows(r3)
如果’test.csv’ 文件事先存在,writer函数会首先清空原文件中的数据, 再执行writerow()等。如果事先不存在,则writer()会首先创建一个空白的test.csv文件。 运行结果如下图所示: ![这里写图片描述](https://img-blog.csdn.net/2018081418570661?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01hb19Kb25haA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 从运行结果上我们看到行之间都有空行,解决方案python2的话可以将”w”模式改成”wb” ,python3中在模式参数后面添加newline=”

with open(‘test.csv’,’w’,newline=”) as csvfile:

结果如下: ![这里写图片描述](https://img-blog.csdn.net/20180814192524367?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01hb19Kb25haA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 从图中我们, 可以看到空行已经全部消失。
  • 追加写入
    在原有文件的最后一行数据后面追加写入新的数据。
import csv

r4 = ["5","3","1"]
with open('test.csv','a',newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(r4)

运行结果如下所示:
Python学习:读取csv文件
目前主要用到的是这些,其它的有需要再更。比如:writerheader(),dialect()等。


Reference:

[1] https://docs.python.org/3.5/library/csv.html#csv-fmt-params
[2] https://blog.csdn.net/u012162613/article/details/41915859
[3] https://blog.csdn.net/guoziqing506/article/details/52014506

相关标签: csv Python