使用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 相关文章推荐
wxPython窗口的继承机制实例分析
Sep 28 Python
python字典基本操作实例分析
Jul 11 Python
python清理子进程机制剖析
Nov 23 Python
用Python写王者荣耀刷金币脚本
Dec 21 Python
python简单操作excle的方法
Sep 12 Python
对python 命令的-u参数详解
Dec 03 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
python批量修改xml属性的实现方式
Mar 05 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
Python实现一个论文下载器的过程
Jan 18 Python
python re模块和正则表达式
Mar 24 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创建PDF中文文档
2006/10/09 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
JavaScript Split()方法
2015/12/18 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
小结Python的反射机制
2020/09/28 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
2014教师党员自我评议总结
2014/09/19 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
单位考核聘任报告
2015/03/02 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
Python基础之元类详解
2021/04/29 Python
MySql开发之自动同步表结构
2021/05/28 MySQL