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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库设计规范

    数据库设计规范数据库的重要性不言而喻。对程序员来说跟数据库打交道更是家常便饭。数据库给开发带来了巨大的便利。我们或多或少的知道一些数据库设计规范,但并不全面。今天我就简单整理一下,帮自己做个总结梳理,也希望可以帮到小伙伴们。数据库设计规范包括命名规范、库表基础规范、字段规范、索引规范和SQL设计规范。1.命名规范1.1库名、表名、字段名禁止使用MySQL保留字。1.2库名、表名、字段名使…

    2022年7月12日
    23
  • poj 1088 记忆化搜索||动态规划

    poj 1088 记忆化搜索||动态规划poj1088    记忆化搜索也也是采用递归深搜的对数据进行搜索,但不同于直接深搜的方式,记忆化搜索是在每次搜索时将得到的结果保存下来,避免了重复计算,这就是所谓的记忆化。记忆化应该是属于动态规划。   举个例子,比如我们搜索最长最长连续增子序列,1 234567,当然这个例子比较特殊,但足以说明情况。   对于这种问题,我们可以先搜索以1开始的

    2022年7月26日
    5
  • ubuntu安装gcc和g++

    ubuntu安装gcc和g++依赖包含gcc和g++,只需一行命令即可sudoapt-getinstallbuild-essential查看版本g++–versiongcc–version

    2022年7月24日
    10
  • 如何解决克隆虚拟出现的Device eth0 does not seem to be present,delaying initialization错误

    如何解决克隆虚拟出现的Device eth0 does not seem to be present,delaying initialization错误

    2021年8月3日
    57
  • 前端如何获取当前时间_js 获取年份

    前端如何获取当前时间_js 获取年份前端js获取当前时间的方法:vartime=newDate();time.getYear();//获取当前年份time.getFullYear();//获取完整的年份(4位,1970-???)time.getMonth();//获取当前月份(0-11,0代表1月)time.getDate();//获取当前日(1-31)tim…

    2022年9月23日
    2
  • graylog2(v2.0.3)的安装与配置

    graylog2(v2.0.3)的安装与配置

    2021年8月30日
    60

发表回复

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

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