csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格:

就可以存储为csv文件,文件内容是:

No.,Name,Age,Score1,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'

importcsv#读

with open("test.csv", "r", encoding = "utf-8") as f:

reader=csv.reader(f)

rows= [row for row inreader]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'

importcsv#读取第二列的内容

with open("test.csv", "r", encoding = "utf-8") as f:

reader=csv.reader(f)

column= [row[1] for row inreader]print(column)

得到:

['Name', 'mayi', 'jack', 'tom', 'rain']

注意从csv读出的都是str类型。这种方法要事先知道列的序号,比如Name在第2列,而不能根据'Name'这个标题查询。这时可以采用第二种方法:

第二种方法是使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:

#-*- conding:utf-8 -*-

__author__ = 'mayi'

importcsv#读

with open("test.csv", "r", encoding = "utf-8") as f:

reader=csv.DictReader(f)

column= [row for row inreader]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'

importcsv#读取Name列的内容

with open("test.csv", "r", encoding = "utf-8") as f:

reader=csv.DictReader(f)

column= [row['Name'] for row inreader]print(column)

得到:

['mayi', 'jack', 'tom', 'rain']

2.写文件

读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。

#!/usr/bin/python3#-*- conding:utf-8 -*-

__author__ = 'mayi'

importcsv#写:追加

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对csv文件操作相关推荐

  1. python课表查询系统_使用python抓取广西科技大学教务系统课程表

    因学校教务系统课程表查询功能累赘,服务器经常挂,同时也不适合手机端查询,所以用python开发爬虫抓取所有课程表,放到我的服务器上面. 本文仅供学习. 特性 中途退出程序再次运行不会抓取到重复课程表 ...

  2. python开发出来的crm系统_用Python打造一个CRM系统(二)

    在上一篇中介绍了CRM和Django,在本篇中将聊聊Django的最佳实践. 总的来说就是遵循Django的设计理念:松耦合.代码精简.快速开发.DRY.明确优于隐式.一致性等.下面从开发环境.项目组 ...

  3. python html5 便利店收银系统_基于Python的Django框架实现的中式快餐厅管理信息系统网站...

    1 初步调研 随着餐饮业的连锁和国外餐饮巨头的进入,餐饮业的竞争将越来越激烈:要想在竞争中处于不败之地,必须在管理.服务等方面提高服务管理意识.面对当前餐饮业普遍的产业化程度低,管理手段.管理技术落后 ...

  4. python股票查询系统_使用python获取股票的上市日期等基本信息

    之前介绍过一个Baostock的python证券数据平台,如今又增加了新的功能,提供了股票上市日期目,上市状态等信息的获取,也可以查询退市股票的信息. 还是按照之前的惯例,上代码: import ba ...

  5. python地铁查询系统_基于Python的苏州实时公交/地铁接口调用代码实例

    1.[代码][Python]代码 #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib from urllib import ur ...

  6. python地铁查询系统_地铁python——函数

    #作用 #使用步骤 #参数作用 #返回值作用 #说明文档 #函数嵌套 #1.作用:将一段具有独立功能的代码块,整合到一个整体命名,在需要的位置上调用这个名称即完成对应需求 #在开发过程中,可以更高效的 ...

  7. 用python做一个数据查询软件_使用Python实现NBA球员数据查询小程序功能

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于早起Python ,作者投稿君 一.前言 有时将代码转成带有界面的程序,会极大地方便 ...

  8. python开发出来的crm系统_用Python打造一个CRM系统(三)

    在上一篇中我们基于cookiecutter-django创建了一个one_crm的项目,在本文中将在本地进行初始化,并成功运行起来. 本地初始化之前先确保环境先安装了Python3.8.Postgre ...

  9. python编程题自动评分系统_用Python为你的「颜值评分」,看看人工智能为你打几分?...

    今天我们分享的Python程序,是一款用深度学习来为颜值评分的应用,在科技飞速发展的当今社会,我们可以通过机器学习实现自动驾驶.识别字体等,甚至连谷歌研发的Alphago都可以向人类的围棋事业发出挑战 ...

  10. python数据存储和查询代码_【Python分享】如何便捷地存储、查询数据

    前言在之前的文章(如下)中,分享了爬取天天基金.中债指数的代码.爬取的数据很多,如何方便地存储.查询,也是一个麻烦的问题.本文分享一下我实现的基于 lsm-db 的本地文件数据存储.查询模块. 分享天 ...

最新文章

  1. testing your idea
  2. WINVER和_WIN32_IE等宏的含义
  3. hihocoder1147 时空阵(bfs树+DP)
  4. 【C语言重点难点精讲】C语言指针
  5. Redis mysql查询结果_Redis Select 命令
  6. 利用jQuery如何获取当前被点击的按钮
  7. verilog 生成块_Verilog数字系统设计教程之学习摘要
  8. jQuery1.3以上版本@的问题
  9. iOS-绘制UIView之drawCGRect
  10. 析构函数定义为虚函数原因
  11. 5S管理跟精益生产的关系是什么?如何使5S管理有效落地?
  12. 电脑端微信用户图片DAT格式解码为图片
  13. 拜耳再投4亿元提升在华处方药产能;阿斯利康进博会公布新冠疫苗最新进展 | 美通企业日报...
  14. 为人处世之道,与君共勉!
  15. Java 截取字符串
  16. C语言多文件编程详解
  17. android8.1 修改默认时区为中国
  18. 转移到ios下载安卓_转移到iOS下载-转移到iOS安装器(安卓转移苹果软件)下载v2.10.0 安卓版-当易网...
  19. 利用python对Excel进行读写操作
  20. 未来想象计算机图片儿童版,未来世界儿童画画大全绘画作品欣赏

热门文章

  1. 浮窗 动画特效 android,悬浮窗能实现自定Animation动画效果吗?
  2. 一些抄来的冷知识...
  3. onclick获取当前节点
  4. Web存储(Web Storage)介绍
  5. Java 集合中的快速失败(fail-fast)和安全失败(fail-safe)机制
  6. 如何在本地一键安装、重启Linux服务器和远程debug调试代码 idea
  7. java 多线程和spring之间的坑
  8. zuul网关,springsecurity认证中心 和 Swagger2 整合遇到的问题
  9. 垃圾收集器分类与GC性能指标
  10. SpringMVC整合Quartz实现定时任务和Spring自带Task定时任务