使用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中操作列表之List.append()方法的使用
May 20 Python
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
Python的Django框架中设置日期和字段可选的方法
Jul 17 Python
Python中is与==判断的区别
Mar 28 Python
机器学习经典算法-logistic回归代码详解
Dec 22 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
Python配置虚拟环境图文步骤
May 20 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 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
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
php获取图片信息的方法详解
2015/12/10 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
Javascript 面向对象之重载
2010/05/04 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
关于期中考试的反思
2014/02/02 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
公司合作意向书
2014/04/01 职场文书
中学生英语演讲稿
2014/04/26 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书