pythoncsv文件的操作_python操作CSV文件

概念:CSV是逗号分隔值或者字符分割值,其文件以纯文本形式存储表格数据。CSV文件可以用文本文件或者转换成EXCEL(直接用EXCEL也可以,但是可能会有一些问题)打开。因此更适合通过CSV文件进行程序之间转移表格数据。

应用场景:需要进行取数分析(将数据库数据拉取下来给产品)、保存爬虫数据时,借助CSV文件更便利一些,同时也可以用该文件记录脚本的操作日志。

下面演示如何通过Python进行CSV文件的读写操作。

import csv

with open('test.csv', 'w') as f:

writer = csv.writer(f)

writer.writerow(['id', 'name', 'phone'])

writer.writerow(['01', 'zhangsan', '13600000001'])

writer.writerow(['02', 'lisi', '13600000002'])

writer.writerow(['03', 'wangwu', '13600000003'])

用记事本打开可以看到如下内容,默认每行数据之间是通过逗号隔开的(可以再理解一下这个Comma-Separated Values)

实例1-1.png

用EXCEL打开的话,数据长这样

实例1-2.png

emmmm,让我们把每行下面的空格去掉,加上newline参数

import csv

with open('test.csv', 'w', newline='') as f:

writer = csv.writer(f)

writer.writerow(['id', 'name', 'phone'])

writer.writerow(['01', 'zhangsan', '13600000001'])

writer.writerow(['02', 'lisi', '13600000002'])

writer.writerow(['03', 'wangwu', '13600000003'])

看,空格没有了!

实例2-1.png

如果想用其它符号代替数据间的逗号,设置delimiter参数

import csv

with open('test.csv', 'w') as f:

writer = csv.writer(f, delimiter = '-')

writer.writerow(['id', 'name', 'phone'])

writer.writerow(['01', 'zhangsan', '13600000001'])

writer.writerow(['02', 'lisi', '13600000002'])

writer.writerow(['03', 'wangwu', '13600000003'])

实例3-1.png

还有一种实现方式,先写入表头,再用writerows插入数据

import csv

with open('test.csv', 'w') as f:

writer = csv.writer(f)

writer.writerow(['id', 'name', 'phone'])

writer.writerows([['01', 'zhangsan', '13600000004'],['02', 'lisi', '13600000005'],['03', 'wangwu', '13600000006']])

实例4-1.png

或者将表头抽离出来,通过字典的方式写入

with open('test.csv', 'w') as f:

header = ['id', 'name', 'phone']

writer = csv.DictWriter(f, fieldnames=header)

writer.writeheader()

writer.writerow({'id': '01', 'name': 'zhangsan', 'phone': '13600000007'})

writer.writerow({'id': '02', 'name': 'lisi', 'phone': '13600000008'})

writer.writerow({'id': '03', 'name': 'wangwu', 'phone': '13600000009'})

实例5-1.png

还可以用for循环将数据依次写入

import csv

data = [

("zhangsan",'13600000001'),

("lisi",'13600000002'),

("wangwu",'13600000003')

]

with open('test.csv','w') as f:

writer = csv.writer(f)

for i in data:

writer.writerow(i)

如果需要写入中文数据,为了避免编码错误,文件操作时加上编码格式

import csv

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

writer = csv.writer(f)

writer.writerow(['id', 'name', 'phone'])

writer.writerow(['01', '张三', '13600000001'])

writer.writerow(['02', '李四', '13600000002'])

writer.writerow(['03', '王五', '13600000003'])

文件读取操作

import csv

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

reader = csv.reader(f)

for row in reader:

print(row)

实例6-1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

欧姆龙变频器MX2参数_第442期丨【源程序】基于三菱西门子欧姆龙松下PLC实现喷水池控制系统;欧姆龙PLC编程软件更新步骤...

论坛周刊1 Dec 2019本期论坛周刊精彩内容:1、【源程序】基于三菱\西门子\欧姆龙\松下PLC实现喷水池控制系统2、欧姆龙PLC编程软件更新步骤3、RSLinx Classic EntherNet/IP配置4、这个运动控制算厉害么5、施耐德、ABB、西门子接连登门拜访往期精选▼第441期丨施耐德电…

linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...

今天,主要想讲一下如何利用Linux内核功能,搭建与市面上十几万的商用产品(F5、RADWARE等)功能相同的多互联网线路负载均衡设备。负载均衡,相信各位是了解的。主要包括两大类,一类是应用负载均衡,…

hive 和mysql配置_Hive学习和配置Mysql

1.Hive简介 起源自facebook由Jeff Hammerbacher领导的团队 构建在Hadoop上的数据仓库框架 设计目的是让SQL技能良好,但Java技能较弱的分析师可以查询海量数据 2008年facebook把hive项目贡献给Apache Hive的组件与体系架构 用户接口:shell, thrift, web等…

python拦截修改数据包_会Python?那么你一定要试一试mitmproxy

mitmproxy 是一款工具,也可以说是 python 的一个包,使用这个工具可以在命令行上进行抓包(现在也可以在web页面上查看上抓的数据包了),还可以对所抓到的包进行脚本处理,非常有用。和 fiddler 或charles 等接口抓包工具相比&#xf…

java sha1_java使用SHA1加密算法详解

java使用SHA1加密算法程序源码://下面四个import放在类名前面 包名后面import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Arrays;public static String getSha1(S…

java调用hbase_Java调用Hbase

1、java调用hbase时(hbase0.96)报以下错误:Exception in thread "main" java.io.IOException: java.lang.reflect.InvocationTargetExceptionat org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:383)at org…

opython3l_python之 数据类型判定与类型转换

一、 判断数据类型0、type(x)type()可以接收任何东西作为参数――并返回它的数据类型。整型、字符串、列表、字典、元组、函数、类、模块,甚至类型对象都可以作为参数被 type 函数接受。>>> type(1)>>> li []>>> type(li)>>> …

java编写服务器_java编写一个简单的回射服务器

全部代码import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Client {// 搭建客户端public static void main(String[] args) throws…

python filter函数_python基础——filter函数

python基础——filter函数Python内建的filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。例如&am…

小程序 wxml selectable_微信小程序 抽象节点

抽象节点这个特性自小程序基础库版本 1.9.6 开始支持。在组件中使用抽象节点有时,自定义组件模板中的一些节点,其对应的自定义组件不是由自定义组件本身确定的,而是自定义组件的调用者确定的。这时可以把这个节点声明为“抽象节点”。例如&am…

java jar 配置文件路径_java jar 配置文件的相对路径问题

无论是在Windows还是Linux操作系统下,绝对路径和相对路径都是很重要的概念,也是许多初学者迷惑的地方,下面我们就这两个概念进行介绍。  绝对路径:由根目录‘/’开始写起的文件名或者目录名称,例如/home/student;  相…

python曲面图颜色渐变方向_matplotlib三维曲面的透明度和颜色渐变?

colset self._shade_colors(color, normals)虽然理论上一个平面的法线都是相同的,但实际上由于浮点运算。这些微小的变化被放大了normalization因为这个{a3}位于0和1之间。在因此,所有完全平面的曲面都容易出现这种着色缺陷。在当颜色是统一的(例如colo…

queue double java_一文弄懂java中的Queue家族

java中Queue家族简介简介java中Collection集合有三大家族List,Set和Queue。当然Map也算是一种集合类,但Map并不继承Collection接口。List,Set在我们的工作中会经常使用,通常用来存储结果数据,而Queue由于它的特殊性&am…

python os.walk_Python os.walk() 简介

os.walk目录遍历每个月都有那么几天想划水,又到划水的日子了,今天分享的是刚在处理遍历目录相关用到的相关方法。os.walkos.walk的参数如下:os.walk(top, topdownTrue, οnerrοrNone, followlinksFalse)其中:top是要遍历的目录。topdown是代…

python pdf转word 表格_太赞了!Pdf转Word,我用Python 轻松搞定表格和水印!

原标题:太赞了!Pdf转Word,我用Python 轻松搞定表格和水印!继上一次为大家推出了将pdf转word之后(卧槽!Pdf转Word用Python轻松搞定!),引起了大家的热烈讨论,我也总结了大家的一些意见…

dao传递类参数 mybatis_Mybatis (ParameterType) 如何传递多个不同类型的参数

偶然碰到一个需要给xml传一个String类型和一个Integer类型的需求,当时心想用map感觉有点太浪费,所以专门研究了下各种方式。方法一:不需要写parameterType参数public List getXXXBeanList(String xxId, String xxCode);select t.* from table…

semantic ui中文文档_Vuetify-广受欢迎的Material风格的开源UI框架

全世界范围内广受欢迎的 Vue UI 框架,一个非常精致的 Material Design UI 套件。 Material Design 风格 UI 框架Vuetify 是一个基于 Vue.js 精心打造 UI 组件库,整套 UI 设计为 Material 风格。能够让没有任何设计技能的开发者创造出时尚的 Material 风格…

java 异常捕获抛出_JAVA异常处理捕获与抛出原理解析

JAVA 异常当代码运行出现错误导致程序终止运行或出现错误情况的状况,就是异常。异常不是指语法错误,即不属于编译错误,只有运行的程序才会有异常。这个时候,JAVA 就提供了优秀的处理方法:异常处理异常处理能让程序在异…

提示tun虚拟网卡没有安装_Win10家庭版通过Hyper-V安装Centos7+Python3.7过程总结

Win10专业版自带有虚拟机Hyper-V, 只需要在控制面板--程序中将其添加到应用就可使用,非常方便,但我电脑预装的是Win10家庭版,没有这个工具,但可以通过以下方法把它安装上:新建文件Hyper-V.cmd,文件内容&…