使用Python操作CSV文件,方便又快捷

news2025/1/11 0:28:20

概念

CSV是逗号分隔值或者字符分割值,其文件以纯文本形式存储表格数据。

CSV文件可以用文本文件或者转换成EXCEL(直接用EXCEL也可以,但是可能会有一些问题)打开。因此更适合通过CSV文件进行程序之间转移表格数据。

应用场景

需要进行取数分析(将数据库数据拉取下来给产品)、保存爬虫数据时,借助CSV文件更便利一些,同时也可以用该文件记录脚本的操作日志。

具体操作

下面演示如何通过Python进行CSV文件的读写操作。

import csv

with open('test.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(['id', 'name', 'phone'])
    writer.writerow(['01', 'zhangsan', '13600000001'])
    writer.writerow(['02', 'lisi', '13600000002'])
    writer.writerow(['03', 'wangwu', '13600000003'])

用记事本打开可以看到如下内容,默认每行数据之间是通过逗号隔开的(可以再理解一下这个Comma-Separated Values)。

图片

用EXCEL打开的话,数据长这样:

图片

让我们把每行下面的空格去掉,加上newline参数:

import csv

with open('test.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['id', 'name', 'phone'])
    writer.writerow(['01', 'zhangsan', '13600000001'])
    writer.writerow(['02', 'lisi', '13600000002'])
    writer.writerow(['03', 'wangwu', '13600000003'])

看,空格没有了!

图片

如果想用其它符号代替数据间的逗号,设置delimiter参数:

import csv

with open('test.csv', 'w') as f:
    writer = csv.writer(f, delimiter = '-')
    writer.writerow(['id', 'name', 'phone'])
    writer.writerow(['01', 'zhangsan', '13600000001'])
    writer.writerow(['02', 'lisi', '13600000002'])
    writer.writerow(['03', 'wangwu', '13600000003'])

图片

还有一种实现方式,先写入表头,再用writerows插入数据:

import csv

with open('test.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(['id', 'name', 'phone'])
    writer.writerows([['01', 'zhangsan', '13600000004'],['02', 'lisi', '13600000005'],['03', 'wangwu', '13600000006']])

图片

或者将表头抽离出来,通过字典的方式写入:

with open('test.csv', 'w') as f:
    header = ['id', 'name', 'phone']
    writer = csv.DictWriter(f, fieldnames=header)
    writer.writeheader()
    writer.writerow({'id': '01', 'name': 'zhangsan', 'phone': '13600000007'})
    writer.writerow({'id': '02', 'name': 'lisi', 'phone': '13600000008'})
    writer.writerow({'id': '03', 'name': 'wangwu', 'phone': '13600000009'})

在这里插入图片描述

还可以用for循环将数据依次写入:

import csv
data = [
    ("zhangsan",'13600000001'),
    ("lisi",'13600000002'),
    ("wangwu",'13600000003')
]
with open('test.csv','w') as f:
    writer = csv.writer(f)
    for i in data:
        writer.writerow(i)

如果需要写入中文数据,为了避免编码错误,文件操作时加上编码格式:

import csv

with open('test.csv', 'w', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['id', 'name', 'phone'])
    writer.writerow(['01', '张三', '13600000001'])
    writer.writerow(['02', '李四', '13600000002'])
    writer.writerow(['03', '王五', '13600000003'])

文件读取操作:

import csv
with open('test.csv','r',encoding = 'utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp 实现多音频同时播放 解决sessionCategory = “ambient“不生效问题

1.1完整代码 <template><view></view> </template><script>export default {data() {return {BGInnerAudioContext1: null, //背景1BGInnerAudioContext2: null, //背景2}},onLoad() {this.play1()this.play2()},methods: {//音频1play1() {//背…

淘女郎买家秀API接口

淘女郎买家秀API接口是一款便捷、安全、高效的接口服务&#xff0c;旨在帮助各类电商平台实现在线评价、商品推荐和用户洞察等功能。接口提供了一系列API功能&#xff0c;包括用户认证、淘宝订单查询、评价抓取、订单分析、商品推荐、场景洞察等。接口同时支持多种语言&#xf…

数据分析必知的统计知识——方差分析共八篇(其六)

6. 方差分析 单因素多水平方差分析 例6.1 不同装配方式对生产的过滤系统数量的差异性检验 某城市过滤水系统生产公司&#xff0c;有A、B、C3种方式进行过滤水系统的装配&#xff0c;该公司为了研究三种装配方式生产的过滤系统数量是否有差异&#xff0c;从全体装配工人中抽取…

第17章 站点构建

mini商城第17章 站点构建 一、课题 站点构建 二、回顾 1、Gateway限流 2、Nginx限流 3、Redis集群应用 4、缓存灾难处理 三、目标 1、Sentinel Sentinel介绍 Sentinel核心功能 Sentinel集成Gateway Sentinel控制台 2、Lvs+Nginx集群 Lvs负载均衡模式 NAT模式 TUN模式 …

——二叉树

二叉树种类 二叉树有两种主要的形式&#xff1a;满二叉树和完全二叉树。 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点&#xff0c;并且度为0的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。 完全二叉树 在完全二叉树中&#xff0c;除了最底层节点可能没…

最新数据库流行度最新排名(每月更新)

2023年09月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多&#xff0c;这个数据库就被认为越受欢迎。这是一个领先指标。原始数据来自谷歌Trends 如果您相信集体智慧&#xff0c;那么TOP DB索引可以帮…

为什么说在「云端」进行产品开发与管理是大势所趋?

提起工业软件&#xff0c;大家会想到各种应用程序&#xff0c;比如机械设计软件、电气设计软件、仿真模拟、生命周期管理等&#xff0c;进而又引出各个工业软件原厂商。由于不同软件之间的壁垒&#xff0c;用户很难实现各个软件之间的协同。不过本文要谈的3DEXPERIENCE WORKS&a…

sql注入的数据提交方式和查询方式

死在山野的风里&#xff0c;活在自由的梦里 sql注入的数据提交方式和查询方式 数据提交方式GET方式注入POST方式注入Request方式注入HTTP头注入什么是Header头部注入&#xff1f;cookie注入 查询方式 数据提交方式 GET方式注入 get注入方式比较常见&#xff0c;主要是通过ur…

@全体开发者们,ChunJun 有奖征文,精美奖品,快来参加!

2022年4月&#xff0c;在 FlinkX 进行初版开源的整整四年后&#xff0c;技术团队决定对FlinkX进行整体升级&#xff0c;并更名为 ChunJun。到目前为止&#xff0c;ChunJun 正式更名上线已经过了一年多了。作为一款稳定、易⽤、⾼效、批流⼀体的数据集成框架&#xff0c;相信各位…

博客系统(升级(Spring))(四)(完)基本功能(阅读,修改,添加,删除文章)

博客系统 (三&#xff09; 博客系统博客主页前端后端个人博客前端后端显示个人文章删除文章 修改文章前端后端提取文章修改文章 显示正文内容前端后端文章阅读量功能 博客系统 博客系统是干什么的&#xff1f; CSDN就是一个典型的博客系统。而我在这里就是通过模拟实现一个博客…

ARM接口编程—WDT(exynos 4412平台)

WDT简介 Watch Dog Timer即看门狗定时器&#xff0c;其主要作用是当发生软件故障时可产生复位信号使SOC复位&#xff0c;其本质是一个计数器 WDT工作原理 WTD寄存器 wtd控制寄存器 用于设置一级分频、二级分频、使能、产生复位和中断信号 WTD数据寄存器 用于获取计数值&…

如何在Windows系统搭建filebrowser私人网盘并实现在外网访问本地内网

Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问 文章目录 Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问前言1.下载安装File Browser2.启动访问File Browser3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3…

JBoss JMXInvokerServlet 反序列化漏洞复现(CVE-2015-7501)

一、漏洞说明 JBoss中/invoker/JMXInvokerServlet路径对外开放&#xff0c;JBoss的jmx组件支持反序列化。JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象&#xff0c;然后我们利用Apache Commons Collections中的Gadget执行任意代码。 二、影响版本 JBoss Enter…

虹科分享 | 知识产权盗窃:它是什么以及如何预防

知识产权 (IP) 涵盖各种形式的创造力和创新&#xff0c;例如艺术品、配方、徽标、文献、食谱、工业设计等。个人和企业都可以拥有知识产权&#xff0c;赋予他们对其想法和创作的合法权利。这些权利帮助知识产权所有者从他们的作品中获益、保护作品并防止复制。知识产权对于推动…

【Redis】Redis 的学习教程(九)之 发布 Pub、订阅 Sub

1. Pub/Sub 介绍 Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式是一种消息传递机制&#xff0c;它允许在发送者和接收者之间建立松耦合的通信关系。在这种模式中&#xff0c;发送者&#xff08;发布者&#xff09;将消息发布到一个指定的频道或模式&#xff0c;而接收…

用户体验设计师是什么,一篇文章读懂!

我是设计师l1m0&#xff0c;今天要给大家分享一个有趣的职业&#xff1a;UX设计师。 在我们日常生活中&#xff0c;我们无时无刻都在与产品发生交互行为&#xff0c;例如使用应用APP、访问网站、与实体陈燕萍进行交互&#xff08;例如试穿衣服&#xff09;或者享受某个服务&am…

恒运资本:多股涨停!“吃药”行情卷土重来;政策利好,元宇宙又可以了!

今日早盘&#xff0c;A股小幅震荡反弹&#xff0c;科创50指数继续围绕900点打开争夺。 盘面上&#xff0c;医药&#xff0c;轿车、元世界、煤炭等板块涨幅居前&#xff0c;航空、家居用品、卫星导航、房地产等板块跌幅居前。北上资金净流出4.4亿元。 医药股全线走强 医药股早…

12个小朋友手拉手站成一个圆圈 约瑟夫环 + 字节历险记

目录 12个小朋友手拉手站成一个圆圈&#xff0c;从某一个小朋友开始报数&#xff0c;报到7的那个小朋友退到圈外&#xff0c;然后他的下一位重新报“1”。这样继续下去&#xff0c;直到最后只剩下一个小朋友求解这个小朋友原来站在什么位置上呢? 请问在互联网公司中,OKR是什…

C语言访问Mysql

文章目录 C语言访问Mysql1. 环境设置2. mysql接口介绍(1) 初始化mysql_init()(2) 链接数据库mysql_real_connect(3) 下发mysql命令mysql_query()(4) 获取执行结果mysql_store_result(5) 释放结果集mysql_free_result()(6) 获取结果行数mysql_num_rows(7) 获取结果列数mysql_num…

Java——》synchronized互斥性

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…