Python对CSV文件的读取与写入 您所在的位置:网站首页 csv文件解析成数据结构 Python对CSV文件的读取与写入

Python对CSV文件的读取与写入

2024-07-10 14:59| 来源: 网络整理| 查看: 265

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)

运行结果:

写入完成

 

六、以字典表的形式写入CSV文件

def write_dict(q): biao = ['编号','课程','讲师'] with open('file.csv', 'a', newline='') as f: xieru = csv.DictWriter(f,biao) xieru.writerows(q) # writerows方法是一下子写入多行内容 print('写入完成') u = [ {'编号': 9, '课程': 'SQL', '讲师': 'Miller'}, {'编号': 10, '课程': 'MySQL', '讲师': 'Davis'} ] write_dict(u)

运行结果:

写入完成

 

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

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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有