千家信息网

python中csv文件的写入与读取怎么实现

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要讲解了"python中csv文件的写入与读取怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python中csv文件的写入与读取怎么
千家信息网最后更新 2025年02月23日python中csv文件的写入与读取怎么实现

这篇文章主要讲解了"python中csv文件的写入与读取怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python中csv文件的写入与读取怎么实现"吧!

CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。很多程序在处理数据时都会碰到csv这种格式的文件。python自带了csv模块,专门用于处理csv文件的读取

csv的写入

通过创建writer对象,主要用到2个方法。一个是writerow,写入一行。另一个是writerows写入多行

使用DictWriter 可以使用字典的方式把数据写入进去

第一种写入方法(通过创建writer对象)

先来说一下第一种写入的方法:通过创建writer对象写入(每次写入一行)
步骤:1.创建数据和表头2.创建writer对象3.写表头4.遍历列表,将每一行数据写入csv
代码如下:

import csvperson = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8') as file_obj:    # 1:创建writer对象    writer = csv.writer(file_obj)    # 2:写表头    writer.writerow(header)    # 3:遍历列表,将每一行的数据写入csv    for p in person:        writer.writerow(p)

写入完就会在当前目录下出现一个person.csv文件,鼠标右键点击show in Explorer打开person.csv查看




打开以后会发现写入的数据中间会换行
居然:那么应该怎么解决这个问题呢
hacker:很简单啊
只需要在写入数据的时候加上一个参数 newline=''为了防止换行写入
改正后的代码如下:

import csv# 数据person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:    # 创建对象    writer = csv.writer(file_obj)    # 写表头    writer.writerow(header)    # 遍历,将每一行的数据写入csv    for p in person:        writer.writerow(p)


✅通过创建writer对象(一次性写入多行)
步骤:1.创建数据和表头2.创建writer对象3.写表头4.在writerows里传入你要处理的数据

import csv# 数据person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:    # 创建对象    writer = csv.writer(file_obj)    # 写表头    writer.writerow(header)    # 3.写入数据(一次性写入多行)    writer.writerows(person)

写入结果如下:

第二种写入方法(使用DictWriter可以使用字典的方式将数据写入)

注意事项:使用字典的方式写入要注意传递的数据格式必须是字典
如果不是字典的话会报错

AttributeError: 'tuple' object has no attribute 'keys'

步骤1.创建数据和表头( 数据必须是字典格式)2.创建DictWriter对象3.写表头4.写入数据

import csv# 数据person = [    {'name': 'xxx', 'age': 18, 'height': 193},    {'name': 'yyy', 'age': 18, 'height': 182},    {'name': 'zzz', 'age': 19, 'height': 185},]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:    # 1.创建DicetWriter对象    dictWriter = csv.DictWriter(file_obj, header)    # 2.写表头    dictWriter.writeheader()    # 3.写入数据(一次性写入多行)    dictWriter.writerows(person)

csv的读取

通过reader()读取

import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj:    # 1.创建reader对象    reader = csv.reader(file_obj)    print(reader)

如果直接打印会返回csv.reader对象,这时需要遍历列表

<_csv.reader object at 0x000001FB8CE655F8>

改正代码如下:

import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj:    # 1.创建reader对象    reader = csv.reader(file_obj)    # 2.遍历进行读取数据    for r in reader:        print(r)

读取结果如下:

['name', 'age', 'height']['xxx', '18', '193']['yyy', '18', '182']['zzz', '19', '185']

如果想打印列表的某一个值,可以使用索引打印

print(r[0])
namexxxyyyzzz

通过dictreader()读取

import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj:    # 1.创建reader对象    dictReader = csv.DictReader(file_obj)    # 2.遍历进行读取数据    for r in dictReader:        print(r)

返回结果如下:

OrderedDict([('name', 'xxx'), ('age', '18'), ('height', '193')])OrderedDict([('name', 'yyy'), ('age', '18'), ('height', '182')])OrderedDict([('name', 'zzz'), ('age', '19'), ('height', '185')])

这时我们如果要取到某一个值就需要指定键去寻找值

print(r['name'])
xxxyyyzzz

感谢各位的阅读,以上就是"python中csv文件的写入与读取怎么实现"的内容了,经过本文的学习后,相信大家对python中csv文件的写入与读取怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

数据 对象 表头 文件 字典 一行 方法 格式 多行 一次性 代码 方式 步骤 结果 处理 学习 内容 字符 逗号 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是公安信息网络安全 商务数据库分析英语 怎么用mysql附加数据库 软件开发里面的爪哇是什么 软件开发考研有哪些大学 无线网络技术中传输速率最高的是 软件开发要多少钱呢 数据库原理中授权分为几类 多数据库查询工具 互联网科技企业抢占小商贩 湖北电力应急软件开发郑重承诺 生活中哪些地方可以用数据库 虎牙游戏服务器排名 关于网络安全的手抄报的内容 什么数据库适合高更新 第六届互联网大会科技成果 网络安全应急中国红客 人来人往伴奏软件开发 服务器僵尸进程如何清理 协议对接跟数据库对接 内江网络技术厂家报价 什么是公安信息网络安全 福田服务器运维服务怎么样 软件开发工程师往上是什么 我的世界领域服务器加模组 萝岗网络安全建设费用 数据库处理数据还要不要做表格 全光网络技术分类 数据库关系表达式举例 网络安全行业销售电话
0