使用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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
在SAE上部署Python的Django框架的一些问题汇总
May 30 Python
Python中的字符串类型基本知识学习教程
Feb 04 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
浅谈django model的get和filter方法的区别(必看篇)
May 23 Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 Python
python操作列表的函数使用代码详解
Dec 28 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
django实现支付宝支付实例讲解
Oct 17 Python
Python基于Socket实现简单聊天室
Feb 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
配置支持SSI
2006/11/25 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
jquery 弹出层实现代码
2009/10/30 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
2013/04/23 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
import与export在node.js中的使用详解
2017/09/28 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
简述JS控制台的使用
2018/07/15 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
详解Python time库的使用
2019/10/10 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
元旦促销方案
2014/03/15 职场文书
大学生毕业求职信
2014/06/12 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
小学班主任研修日志
2015/11/13 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL