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)

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

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • stringtokenizer java,Java中的StringTokenizer「建议收藏」

    stringtokenizer java,Java中的StringTokenizer「建议收藏」Java中的StringTokenizerjava.util.StringTokenizer类允许您将字符串分成令牌。这是打破字符串的简单方法。它没有提供区分数字,带引号的字符串,标识符等的功能,例如StreamTokenizer类。我们将在I/O一章中讨论StreamTokenizer类。StringTokenizer类的构造方法StringTokenizer类中定义了3个构造函数。Constr…

    2022年8月11日
    3
  • 视频流媒体服务器的作用是什么?流媒体服务器功能介绍[通俗易懂]

    视频流媒体服务器的作用是什么?流媒体服务器功能介绍[通俗易懂]入行这么多年,深深觉得流媒体服务器的未来也将伴随着宽带应用和网络发展的总趋势,毕竟科技改变生活,未来流媒体也将占据网络的主流,视频流媒体服务器的功能和作用也将越来越丰富。在未来,流媒体服务器将转向高

    2022年7月1日
    21
  • porm文件。随时可复制。

    porm文件。随时可复制。<?xmlversion=”1.0″encoding=”UTF-8″?>4.0.0com.qstdsfsdfpom1.0-SNAPSHOTmain<name>dsfsdf</name>http://www.example.comorg.mybatis.generator…

    2022年6月16日
    31
  • Java中随机数

    Java中随机数    在Java中主要提供了两种方式产生随机数,分别为调用Math类的random()方法和Random类提供的产生各种数据类型随机数的方法。1.Math.random()方法这个方法默认生成大于等于0.0且小于1.0的double型随机数,即0&lt;=Math.random()&lt;1.0。虽然Math.random()方法只可以产生0~1之间的double型数字,其实…

    2022年7月8日
    21
  • 【tensorflow】浅谈什么是张量tensor

    【tensorflow】浅谈什么是张量tensor也许你已经下载了TensorFlow,而且准备开始着手研究深度学习。但是你会疑惑:TensorFlow里面的Tensor,也就是“张量”,到底是个什么鬼?也许你查阅了维基百科,而且现在变得更加困惑。也许你在NASA教程中看到它,仍然不知道它在说些什么?问题在于大多数讲述张量的指南,都假设你已经掌握他们描述数学的所有术语。别担心!我像小孩子一样讨厌数学,所以如果我能明白,你也可以!…

    2022年6月25日
    25
  • oracle 将表名和字段名变为大写

    oracle 将表名和字段名变为大写当使用powerdesigner创建数据库时要注意大小写。注:以下脚本在oracle10g,11g上正确执行1.批量将表名变为大写beginforcin(selecttable_nametnfromuser_tableswheretable_name<>upper(table_name))loopbegine…

    2022年5月17日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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