技术干货:Python解析CSV
1. 什么是CSV
CSV(Commma-Separated Value)是都好分隔符,其文件以纯文本形式存储表格数据(数字和文本)。
案例:
2. 为什么要使用CSV
与专有的二进制文件格式截然不同,CSV通常用于在在电子表格软件和纯文本之间交互数据. 实际上,CSV都不算是一个真正的结构化数据,CSV文件内容仅仅是一些用逗号分隔的原始字符串值.
听起来好像很容易解析CSV文件,是吗? 可能不假所思地认只须调用str.split(",")即可. 但不能够这样做,因为有些字段可能含有嵌套的逗号,因此需要专门用于解析和生成CSV的库,如Python的csv库.
3. 案例
通过将源码时代的学科数据,以CSV格式输出到文件中,接着将同样的数据读出来显示在控制台上。
4. 逐行解析
第1~10行
首先导入CSV模块. 紧接着就是数据集的导入语句. 该数据集是四元组,每个元组占用一列. 分别是学科编号, 学科 ,开班时间, 预计人数.
第12~17行
这一部分,csv.reader()函数与csv.writer()相反,用于返回一个可迭代对象,可以读取该对象并且解析为CSV数据的每一行. 与csv.writer()类似,csv.reader()也使用一个已打开文件的句柄,返回一个reader对象. 当逐行迭代数据时,CSV数据会自动解析并且返回给用户. 逐行显示数据处理完毕之后关闭文件.
除了csv.reader()和csv.write()之外,csv模块也提供了csv.DictReader类和csv.DictWriter类,用于将CSV数据都进到字典中(首先检查是否使用给定字段名,如果没有,就使用第一行作为键),接着讲字典字段写入CSV文件中.
技术干货:Python解析CSV的更多相关文章
- python cookbook第三版学习笔记七:python解析csv,json,xml文件
CSV文件读取: Csv文件格式如下:分别有2行三列. 访问代码如下: f=open(r'E:\py_prj\test.csv','rb') f_csv=csv.reader(f) for f in ...
- 华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”
摘要:针对企业AI开发应用中面临的痛点和难点,为大家带来从实践出发帮助企业构建成熟高效的AI开发流程解决方案. 在数字化转型浪潮席卷全球的今天,AI技术已经成为行业公认的升级重点,正在越来越多的领域为 ...
- Python解析CSV中的多维字典
CSV文件结构如下,其中字段A为唯一 代码如下,Python27 with open(file_obj+'TEST.CSV','r') as f: #转为字典 Reader=csv.DictReade ...
- python处理csv文档
在工作中遇到了使用python解析csv文件的问题,包括读写操作,下面参考官网文档,进行一下总结: 首先CSV (Comma Separated Values) ,也就是逗号分开的数值,可以用Note ...
- Python 解析构建数据大杂烩 -- csv、xml、json、excel
Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记语言 Html ,但主要对文档和数据 ...
- 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试
1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1. ...
- Python操作csv文件
1.什么是csv文件 The so-called CSV (Comma Separated Values) format is the most common import and export fo ...
- 史诗级干货-python爬虫之增加CSDN访问量
史诗级干货-python爬虫之增加CSDN访问量 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net ...
- 分享iOS开发常用(三方类库,工具,高仿APP,实用网站,技术干货)
一 . JSONModel (三方类库会有更新,建议大家在线下载) http://pan.baidu.com/s/1i5ybP1z 二.AFNetworkiong http://pan.baidu. ...
随机推荐
- SpringBoot启动时 提示没有主清单属性 MANIFEST
SpringBoot启动时 提示没有主清单属性 MANIFEST <?xml version="1.0" encoding="UTF-8"?> &l ...
- Spring依赖模块
1.spring maven依赖 https://www.cnblogs.com/nwu-edu/p/9542074.html
- [转帖]yum 下载rpm包 之前不知道具体的存放路径.
使用Yum下载RPM包-进击的二狗子-51CTO博客 https://www.2cto.com/os/201905/807225.html yumdownloader 命令 yum install y ...
- redis 小结二
1.在redis客户端获取redis 配置文件的某个配置信息(需要先打开redis客户端) config get 配置项 , 如果要列出所有的配置项( CONFIG GET *) 2.在redis ...
- [Next] 二.next.js之组件
next.js 中的组件 next.js 里面的组件(页面)就是 react 里面的组件. 功能组件 在项目之中一个功能组件的创建 , 他可以和父组件放到一个文件里,也可以单独创建一个文件存放组件. ...
- vuex的简单理解
初次接触vuex,谈谈我自己的理解.有待后期改进 首先要知道,Vuex 是专门为 Vue.js 设计的状态管理库.我们知道在用vue.js进行前端项目开发时,会出现很多组件相互之间调用属性.状态,小项 ...
- 缓存机制总结(JVM内置缓存机制,MyBatis和Hibernate缓存机制,Redis缓存)
一.JVM内置缓存(值存放在JVM缓存中) 我们可以先了解一下Cookie,Session,和Cache Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cooki ...
- Xshell6,亲测可用~破解版简单解压免安装~已更新官方版本安装方法
下面的内容别看了,使用这个最新的安装官方版本 https://www.cnblogs.com/taopanfeng/p/11671727.html 下面的内容别看了,使用这个最新的安装官方版本 htt ...
- linux命令详解——ln
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件. 当我们需要在不同的目录,用到相同的 ...
- C++ STL(一)string的用法
# 1.string的用法- string在<iostream>的头中就有,但是还是得用<string>的头 ##### 构造函数- str(const char* ch) 直 ...