首页 > 编程语言 > 详细

Python对CSV文件的读取与写入

时间:2020-12-15 10:28:32      阅读:33      评论:0      收藏:0      [点我收藏+]

CSV 文件(Comma Separated Values file,即逗号分隔值文件)是一种纯文本文件,它使用特定的结构来排列表格数据。因为是纯文本文件,所以 csv 只包含实际的文本数据 —— 换句话说,csv 可以包含可打印的 ASCII 或 Unicode 字符。那在python中对CSV文件要怎么进行操作呢?

 

首先要先准备一个CSV文件,创建一个excel文件,并另存为csv文件,放入几行数据,我准备里面的内容是:

技术分享图片

 

 

 

一、导入CSV包

import csv

 

二、CSV文件基本读取

def read_csv():
    with open(file.csv,r) as f:
        rete = csv.reader(f)        # 读取后返回的是一个_csv.reader的对象,如果通过遍历,可以看到是一个个列表
        for x in rete:
            print(x)

运行结果:

[编号, 课程, 讲师]
[1, Python, Tom]
[2, C#, Jesee]
[3, Django, Nike]
[4, .Net, Kangkang]

 

通过以上方法,就读取出CSV文件里面的内容。

 

三、读取CSV文件并用namedtuple映射列名

def read_namedtuple():
    with open(file.csv,r) as f:
        red = csv.reader(f)     # 读取后返回的是一个_csv.reader的对象,如果通过遍历,可以看到是一个列表
        head = next(red)        # 要把第一行给分隔开,不然会当成数据一起打印了
        ow = namedtuple(Row,head)
        # 用nmaedtuple来定义的,它的对象名称就叫Row,后面列表给它的数据就是最终这个对象的值,而head里面的表头就当作是Row对象值的名称
        for x in red:
            row = ow(*x)        # *r就是对遍历到的r进行解包,然后传递给Row,它会将每一列对应到Row对象值的名称下面
            print(row)

运行结果:

Row(编号=1, 课程=Python, 讲师=Tom)
Row(编号=2, 课程=C#, 讲师=Jesee)
Row(编号=3, 课程=Django, 讲师=Nike)
Row(编号=4, 课程=.Net, 讲师=Kangkang)

 

 

四、读取CSV文件并以字典的形式映射

def read_dict():
    ‘‘‘读取csv并以字典的形式映射‘‘‘
    with open(score.csv,r) as f:
        red = csv.DictReader(f)     # 通过csv自带的DictReader方法将数据转换成字典表
        for x in red:
            print(x)              # 遍历出来每个x都是一个字典表

运行结果:

{编号: 1, 课程: Python, 讲师: Tom}
{编号: 2, 课程: C#, 讲师: Jesee}
{编号: 3, 课程: Django, 讲师: Nike}
{编号: 4, 课程: .Net, 讲师: Kangkang}

 

 

五、写入CSV文件

写入单行内容到CSV文件

def write_csv(s,q):
    with open(file.csv,a,newline=‘‘) as f:     # newline=空是因为我们文件是csv类型,如果不加这个东西,当我们写入东西的时候,就会出现空行
        xieru = csv.writer(f,dialect=excel)       # 定义一个变量进行写入,将刚才的文件变量传进来,dialect就是定义一下文件的类型,我们定义为excel类型
        xieru.writerow(s)       # 写入的方法是writerow,通过写入模式对象,调用方法进行写入
        xieru.writerow(q)
        print(写入完成)

s = [5, Java, Mark]
q = [6, C++, William]
write_csv(s,q)

运行结果:

写入完成

 

写入多行内容到CSV文件

def write_csv(s):
    with open(file.csv,a,newline=‘‘) as f:
        xieru = csv.writer(f,dialect=excel)
        xieru.writerows(s)       # writerows方法是一下子写入多行内容
        print(写入完成)

e = [(7,PHP,Jones),(8,HTTP,Brown)]
write_csv(e)

运行结果:

写入完成

 

这就Python对CSV文件的读取与写入,你看懂了吗?如果没看懂,欢迎留言交流哦!

 
 
本文转自:https://www.myblou.com/archives/1466

Python对CSV文件的读取与写入

原文:https://www.cnblogs.com/myblou/p/14134276.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!