python对csv文件的读写

python对csv文件的读写首先先简单说一下csv文件,csv的全称是Comma-SeparatedValues,意思是逗号分隔值,通俗点说就是一组用逗号分隔的数据。CSV文件可以用excel打开,会显示如下图所示:这个文件用notepad打开显示是这样的,这是它原始的样子:好了,下班我们来用python对csv文件进行读写操作1.读文件如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Py…

大家好,又见面了,我是你们的朋友全栈君。

首先先简单说一下csv文件,csv的全称是Comma-Separated Values,意思是逗号分隔值,通俗点说就是一组用逗号分隔的数据。CSV文件可以用excel打开,会显示如下图所示:
在这里插入图片描述

这个文件用notepad打开显示是这样的,这是它原始的样子:
在这里插入图片描述

好了,下班我们来用python对csv文件进行读写操作
1.读文件

如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Python自带的csv模块,有两种方法可以实现:

第一种方法使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:

#-*-encoding:utf-8-*-
import csv
#读取csv文件
with open("C:\\Users\\A9050031\\Desktop\\test.csv", "r") as f:
	reader = csv.reader(f)
	for row in reader:
		print(row)

可以得到如下所示结果:
在这里插入图片描述

使用这种方法读取某一列的数据必须指定列号,不能根据Sid、Sname这些属性来获取列信息。例子如下:
在这里插入图片描述

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

#-*-encoding:utf-8-*-
import csv
#读取csv文件
with open("C:\\Users\\A9050031\\Desktop\\test.csv", "r") as f:
	reader = csv.DictReader(f)
	for row in reader:
		print(row)

数据输出结果如下:
在这里插入图片描述

通过DictReader获取的数据可以通过每一列的标题来查询,示例如下所示:
在这里插入图片描述

2.写文件
写文件可以通过调用csv的writer函数来进行数据的写入,示例代码如下:

row = ['7', 'hanmeimei', '23', '81', '78', '78']
out = open("C:\\Users\\A9050031\\Desktop\\test.csv", "a")
csv_writer = csv.writer(out, dialect = "excel")
csv_writer.writerow(row)

结果如下图所示追加到了文件中
在这里插入图片描述

以上只是我浅显的学习,希望我们一起学习进步。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162463.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 二进制与十进制,八进制,十六进制转换_十进制转十六进制算法

    二进制与十进制,八进制,十六进制转换_十进制转十六进制算法进制转换:二进制、八进制、十六进制、十进制之间的转换不同进制之间的转换在编程中经常会用到,尤其是C语言。将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是N进制,那么:对于整数部分,从右往左看,第i位的位权等于Ni-1对于小数部分,恰好相反,要从左往右看,第j位的位权为N-j。…

    2022年10月18日
  • 2021的vmware12激活码【在线注册码/序列号/破解码】

    2021的vmware12激活码【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • TCP 协议(包含三次握手,四次挥手)[通俗易懂]

    TCP 协议(包含三次握手,四次挥手)[通俗易懂]TCP特性1.确认应答(可靠传输的最核心机制)1.确认应答(可靠传输的最核心机制)可靠传输的最核心机制

  • es数据库查询API「建议收藏」

    es数据库查询API「建议收藏」1.背景ES数据库是非关系型数据库2.ES数据库优点1.存储优化内存中使用有限状态机FST优化本质上是前缀树加上后缀树的结合,利用这个数据结构可以把Term更节省内存地放置并查询,它有着字典树的查询时间复杂度,但是由于做了后缀合并会更节约内存传统Bitmap优化使用Bitmap来记录文档的Id,每个bit对应一个文档,表示它是否存在。2.联合查询优化若要对多个t…

  • 示波器 游戏_示波器泰克与安捷伦

    示波器 游戏_示波器泰克与安捷伦安捷伦示波器的游戏早就听说Agilent546xx示波器中有游戏玩,一直没有机会尝试。最近手上终于有台54641D可用,一时兴起,看看怎么进入游戏界面。按网上介绍,保存文件,输入特定文件名即可。真不错,游戏界面来了,COOL!具体操作见下图按ENTER软键后,精彩来了:

    2022年10月12日
  • 一个晚上加一个上午啊 笨死算球

    一个晚上加一个上午啊 笨死算球

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号