使用Python对Csv文件操作实例代码


Posted in Python onMay 12, 2017

csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格:

使用Python对Csv文件操作实例代码

就可以存储为csv文件,文件内容是:

No.,Name,Age,Score
1,mayi,18,99
2,jack,21,89
3,tom,25,95
4,rain,19,80

假设上述csv文件保存为"test.csv"

1.读文件

如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Python自带的csv模块,有两种方法可以实现:

第一种方法使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:

#!/usr/bin/python3
# -*- conding:utf-8 -*-
__author__ = 'mayi'

import csv

#读
with open("test.csv", "r", encoding = "utf-8") as f:
  reader = csv.reader(f)
  rows = [row for row in reader]

print(rows)

得到:

[['No.', 'Name', 'Age', 'Score'],
 ['1', 'mayi', '18', '99'],
 ['2', 'jack', '21', '89'],
 ['3', 'tom', '25', '95'],
 ['4', 'rain', '19', '80']]

要提取其中某一列,可以用下面的代码:

#!/usr/bin/python3
# -*- conding:utf-8 -*-
__author__ = 'mayi'

import csv

#读取第二列的内容
with open("test.csv", "r", encoding = "utf-8") as f:
  reader = csv.reader(f)
  column = [row[1] for row in reader]

print(column)

得到:

['Name', 'mayi', 'jack', 'tom', 'rain']

注意从csv读出的都是str类型。这种方法要事先知道列的序号,比如Name在第2列,而不能根据'Name'这个标题查询。这时可以采用第二种方法:

第二种方法是使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:

# -*- conding:utf-8 -*-
__author__ = 'mayi'

import csv

#读
with open("test.csv", "r", encoding = "utf-8") as f:
  reader = csv.DictReader(f)
  column = [row for row in reader]

print(column)

得到:

[{'No.': '1', 'Age': '18', 'Score': '99', 'Name': 'mayi'},
 {'No.': '2', 'Age': '21', 'Score': '89', 'Name': 'jack'},
 {'No.': '3', 'Age': '25', 'Score': '95', 'Name': 'tom'},
 {'No.': '4', 'Age': '19', 'Score': '80', 'Name': 'rain'}]

如果我们想用DictReader读取csv的某一列,就可以用列的标题查询:

#!/usr/bin/python3
# -*- conding:utf-8 -*-
__author__ = 'mayi'

import csv

#读取Name列的内容
with open("test.csv", "r", encoding = "utf-8") as f:
  reader = csv.DictReader(f)
  column = [row['Name'] for row in reader]
print(column)

得到:

['mayi', 'jack', 'tom', 'rain']

2.写文件

读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。

#!/usr/bin/python3
# -*- conding:utf-8 -*-
__author__ = 'mayi'

import csv

#写:追加
row = ['5', 'hanmeimei', '23', '81']
out = open("test.csv", "a", newline = "")
csv_writer = csv.writer(out, dialect = "excel")
csv_writer.writerow(row)

得到:

使用Python对Csv文件操作实例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python根据京东商品url获取产品价格
Aug 09 Python
Pyinstaller将py打包成exe的实例
Mar 31 Python
Python pymongo模块常用操作分析
Sep 01 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
python环境路径配置以及命令行运行脚本
Apr 02 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
使用pycharm在本地开发并实时同步到服务器
Aug 02 Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 Python
python实现图片横向和纵向拼接
Mar 05 Python
matplotlib quiver箭图绘制案例
Apr 17 Python
什么是Python包的循环导入
Sep 08 Python
分析Python list操作为什么会错误
Nov 17 Python
python 读取excel文件生成sql文件实例详解
May 12 #Python
Python实现读取并保存文件的类
May 11 #Python
Python使用defaultdict读取文件各列的方法
May 11 #Python
python中nan与inf转为特定数字方法示例
May 11 #Python
Python和C/C++交互的几种方法总结
May 11 #Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 #Python
详解Python读取配置文件模块ConfigParser
May 11 #Python
You might like
利用php绘制饼状图的实现代码
2013/06/07 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
DOM精简教程
2006/10/03 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python的turtle库使用详解
2019/05/10 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
Python运行DLL文件的方法
2020/01/17 Python
如何解决python多种版本冲突问题
2020/10/13 Python
python实现三种随机请求头方式
2021/01/05 Python
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
教师党性分析材料
2014/02/04 职场文书
2014年元旦促销活动方案
2014/02/22 职场文书
助残日活动总结
2014/08/27 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫