使用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当中的数据类型和变量
Apr 25 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
python Django框架实现自定义表单提交
Mar 25 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
Django框架基础模板标签与filter使用方法详解
Jul 23 Python
python可视化实现KNN算法
Oct 16 Python
python+Django实现防止SQL注入的办法
Oct 31 Python
Python进程Multiprocessing模块原理解析
Feb 28 Python
python生成大写32位uuid代码
Mar 03 Python
Python叠加矩形框图层2种方法及效果
Jun 18 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
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
JQuery 常用方法基础教程
2009/02/06 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
js实现每日签到功能
2018/11/29 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
Python牛刀小试密码爆破
2011/02/03 Python
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
python滑块验证码的破解实现
2019/11/10 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
python中如何进行连乘计算
2020/05/28 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
工会工作个人总结
2015/03/03 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
运动会广播稿20字
2015/08/19 职场文书