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)


相关推荐

  • TCP四次挥手和TIME_WAIT

    TCP四次挥手和TIME_WAITFIN_WAIT_1:FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情…

  • bm3d matlab,Note — BM3D「建议收藏」

    bm3d matlab,Note — BM3D「建议收藏」一、引言二、理论三、算法一、引言前面一篇说到Non-localmethod[1],可以归类到spatialmethod中,另外用的比较多的还有transformmethod,基于transformmethod的方法在imagedenoise中也取得了很好的效果,不过理论阐述会比较繁琐,如BLS-GSM-Wavelet。NLM去噪算法使用的是inter-patchcorrelation,而Wavel…

  • java 入门面试题

    java 入门面试题起因焦虑。每次自己想跳槽的时候,内心总是担忧着那些面试题怎么解答。 很多问题在实际工作中并不会遇到,没有实际的解决问题经验,看过也记不住。 假如我明年需要换工作,那现在把下次的面试准备工作,拆分、融入到平时的每天中,会不会取得更满意的offer?目标收集网上各种经典的java面试题 做出答案,分享出去,和猿友讨论,不断进步 扩大知识图谱,扎实基础,梳理知识脉络…

  • fbx转3dtiles

    fbx转3dtilesfbx转3dtiles

    2022年10月27日
  • Xray使用「建议收藏」

    Xray使用「建议收藏」安装过程本文省略,想看安装请看这个——>《Xray安装与使用》20200806,下班前五分钟安装好了,在windows上安装的,后执行了扫描一个url的命令。.\xray_windows_amd64.exewebscan–urlhttp://example.com/–html-outputxray-testphp.html扫了个知道有SQL注入的地址,确实可以扫出来,整了txt和html的报告,都还行。20200807,测试开代理被动扫描。先修改了config.yam

  • Redis 主从复制

    Redis 主从复制大家好,我是小林哥。又来图解Redis啦。我在前两篇已经给大家图解了AOF和RDB,这两个持久化技术保证了即使在服务器重启的情况下也不会丢失数据(或少量损失)。不过,由于数据都是存储在一台服务器上,如果出事就完犊子了,比如:如果服务器发生了宕机,由于数据恢复是需要点时间,那么这个期间是无法服务新的请求的;如果这台服务器的硬盘出现了故障,可能数据就都丢失了。要避免这种单点故障,最好的办法是将数据备份到其他服务器上,让这些服务器也可以对外提供服务,这样即使有一台服务器出现了故障,其他服

发表回复

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

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