使用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 基础学习教程
Feb 08 Python
python学习手册中的python多态示例代码
Jan 21 Python
python中使用pyhook实现键盘监控的例子
Jul 18 Python
python开发中range()函数用法实例分析
Nov 12 Python
Python中属性和描述符的正确使用
Aug 23 Python
Python 查看文件的读写权限方法
Jan 23 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
Python常用库大全及简要说明
Jan 17 Python
python读取与处理netcdf数据方式
Feb 14 Python
150行Python代码实现带界面的数独游戏
Apr 04 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
详解VUE 数组更新
2017/12/16 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
工程力学硕士生的自我评价范文
2013/11/16 职场文书
大学班长的职责
2014/01/27 职场文书
道德演讲稿
2014/05/21 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
标准版离职证明书
2014/09/12 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
中秋节感想
2015/08/10 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL