使用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 相关文章推荐
linux系统使用python监测系统负载脚本分享
Jan 15 Python
python实现在pickling的时候压缩的方法
Sep 25 Python
简单的Python2.7编程初学经验总结
Apr 01 Python
Python进阶-函数默认参数(详解)
May 18 Python
Python实现的用户登录系统功能示例
Feb 05 Python
Python学习之Django的管理界面代码示例
Feb 10 Python
Python检测网络延迟的代码
May 15 Python
pytorch自定义初始化权重的方法
Aug 17 Python
python怎么提高计算速度
Jun 11 Python
Django REST 异常处理详解
Jul 15 Python
Python面向对象实现方法总结
Aug 12 Python
基于Python编写一个监控CPU的应用系统
Jun 25 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二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
php显示页码分页类的封装
2017/06/08 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
如何用Python 加密文件
2020/09/10 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
先进事迹报告会主持词
2014/04/02 职场文书
新闻编辑求职信
2014/04/09 职场文书
触电现场处置方案
2014/05/14 职场文书
施工安全协议书范本
2014/09/26 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python