python基础学习之写入csv文件

前言

在Python编程中,经常会遇到要将数据存到csv文件中,今天来详细讲一下。

一.功能目的

将以下数据存到csv文件中。

data = [  {'name': 'Alice', 'age': 25, 'city': 'New York'},  {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'},  {'name': 'Charlie', 'age': 35, 'city': 'Chicago'}  
]

二.功能调研

根据搜索引擎,我们可以提取到以下信息:

1.写入文件

with open 函数在 Python 中用于打开一个文件,并返回一个文件对象。这个函数通常与 as 关键字一起使用,以便将文件对象赋值给一个变量,从而可以对其进行操作。使用 with 语句的一个主要优点是它会自动管理文件的打开和关闭,即使在处理文件时发生异常也是如此。

代码示例如下:

# 定义要写入的数据  
data = "Hello, world!"  # 使用 with open 打开文件,如果文件不存在,则创建它  
# 'w' 模式表示写入,会覆盖文件中的任何现有内容  
with open('example.txt', 'w', encoding='utf-8') as file:  # 写入数据到文件  file.write(data)  # with 语句块结束后,文件会自动关闭  
print("数据已写入 example.txt")

在这个例子中,open 函数接收三个参数:

文件名 ('example.txt'):要打开或创建的文件的名称。

模式 ('w'):打开文件的模式。'w' 表示写入模式,会覆盖文件中的任何现有内容。如果要追加内容到文件末尾而不是覆盖它,可以使用 'a' 模式。其他常见的模式包括 'r'(读取)和 'x'(如果文件已存在则失败)。

encoding ('utf-8'):指定文件的字符编码。UTF-8 是一种常用的编码方式,它支持国际字符集。

as 关键字后面的 file 是一个变量,它引用了打开的文件对象。

在这个 with 语句块内部,你可以通过 file 变量来执行文件操作,比如读取或写入数据。

当 with 语句块执行完毕后,Python 会自动关闭文件,即使发生异常也是如此。

2.csv.DictWriter类

csv.DictWriter 类是 Python 的 csv 模块中的一个功能,它允许你以字典的形式将数据写入 CSV 文件。

下面是 csv.DictWriter 类的一些基本用法和特性:

初始化

当你创建 csv.DictWriter 对象时,你需要传递两个主要的参数:一个文件对象和一个字段名列表。文件对象通常是通过 open() 函数创建的,而字段名列表则定义了 CSV 文件的列标题。

import csv  # 打开一个文件以写入,并创建一个 csv.DictWriter 对象  
with open('example.csv', 'w', newline='') as csvfile:  fieldnames = ['name', 'age', 'city']  writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
写数据

csv.DictWriter 类提供了几个方法来帮助你写入数据:

writeheader():这个方法将字段名(即列标题)写入 CSV 文件的第一行。

writerow(row_dict):此方法将单个字典(row_dict)作为一行写入 CSV 文件。字典的键对应于字段名,而值则是实际写入的数据。

writerows(row_dicts):此方法接受一个字典列表(row_dicts),并将每个字典作为一行写入 CSV 文件。

注意,writerow() 和 writerows() 方法只写入值,不写入键。键(即字段名)是在调用 writeheader() 方法时写入的,或者在创建 csv.DictWriter 对象通过 fieldnames 参数指定的。

我们可以根据以上方法来达到我们的目的。

三.编写代码

1.代码示例

代码如下(示例):

import csv  # 准备数据  
data = [  {'name': 'Alice', 'age': 25, 'city': 'New York'},  {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'},  {'name': 'Charlie', 'age': 35, 'city': 'Chicago'}  
]  # 定义CSV文件的路径  
csv_file_path = 'output.csv'  # 打开文件并创建CSV写入器  
with open(csv_file_path, 'w', newline='', encoding='utf-8') as csvfile:  fieldnames = ['name', 'age', 'city']  writer = csv.DictWriter(csvfile, fieldnames=fieldnames)  # 写入数据  writer.writeheader()  writer.writerows(data)  print(f"数据已写入 {csv_file_path}")

2.结果如下

运行这段代码,就可以得到以下结果:

总结

本文主要讲了使用with open函数和csv.DictWriter类来将数据写入csv。

后续会持续更新,欢迎关注!

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

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

相关文章

DS:单链表的实现

欢迎各位来到 Harper.Lee 的编程学习小世界! 博主主页传送门:Harper.Lee的博客 我将在这里分享我的学习过程等心得 创作不易,码字不易,兄弟们养成先赞后看的好习惯哦! 想一同进步的uu,可以来后来找我哦&…

Selenium IDE 常见错误笔记

错误1:Failed:Exceeded waiting time for new window to appear 2000ms 这个错误通常出现在第一次运行时,有两个原因: Firefox阻止了弹出式窗口,在浏览器设置里允许这个操作即可。 有些网站设置了反扒机制,脚本运行…

解决Blender导出FBX文件到Unity坐标轴错误的问题

发现Blender的模型导入到Unity里面有问题,简单研究了下发现是坐标系不同,Unity使用的是左手坐标系,Blender使用的是右手坐标系 。 下面直接将如何解决 首先忽略Blender的右手坐标系以及Z轴朝上的事,依照unity坐标系情况修改模型物体的旋转,以Blender猴…

算法工程师——算法岗的分类及要求汇总

算法岗工程师 根据 Talent Seer 人才报告显示,全球 AI 从业者总人数约有 30 万,还是供不应求,其中 AI 技术专家(具有相关领域博士学位及 3 年以上工作经验的)约有 3.65 万。 简介 对于计算机专业的毕业生而言,算法岗基本上就是 「高薪」 的代名词。 在当今 IT 行业,算…

【城市】2023深圳市定居与生活相关政策(含租房、租车)

【城市】2023深圳市定居与生活相关政策(含租房、租车) 文章目录 一、户籍身份1、深圳市居住登记凭证、居住证(点击就送)2、深圳落户(点击就送1) 二、人才补贴人才引进补贴(含应届生)…

vue3左树的全选和反选

<el-input v-model"filterText" placeholder"" style"width: 48%"/><el-button type"primary" click"handleSearch" class"ml-2">查找</el-button><el-radio-group v-model"form.choic…

学习笔记:能量信号与功率信号(一)

目录 一、能量信号&#xff08;Energy Signal&#xff09; 二、功率信号&#xff08;Power Signal&#xff09; 三、信号关系图 四、总结 能量信号和功率信号是信号分析中两个基本的概念&#xff0c;它们主要用来描述信号在时间域中能量分布的特性&#xff0c;对于理解信号…

Faststone Capture:一触即发的效率革命【AI写作】

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

苹果发布开源模型;盘古大模型5.0将亮相;英伟达将收购 Run:ai

苹果首次发布开源语言模型 近期&#xff0c;苹果在 Hugging Face 发布了 OpenELM 系列模型。OpenELM 的关键创新是逐层扩展策略&#xff0c;该策略可在 transformer 模型的每一层中有效地分配参数&#xff0c;从而提高准确性。 与具有统一参数分配的传统语言模型不同&#xff…

【免费Java系列】给大家出一些JavaSE基础第八天的内容案例 , 让大家更好的理解与掌握

String字符串 案例一 求取字符串的长度 public class Main {public static void main(String[] args) {String str "Hello World";String substring str.substring(6);System.out.println("截取后的字符串为&#xff1a;" substring);} }输出结果&…

windows下pysqlite3安装

pysqlite3 下载地址&#xff1a;SQLite Download Page windows下安装 首先在官网中下载以下文件 sqlite-amalgamation-3450300.zip #源码文件 sqlite-dll-win-x64-3450300.zip # 根据系统选择32或者64&#xff0c;可通过查看我的电脑属性中查看 sqlite-tools-win-x64-345…

springboot笔记一:idea社区版本创建springboot项目的方式

社区idea 手动maven 创建springboot项目 创建之后修改pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sc…

STM32使用PWM控制舵机

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 舵机简介 2. 硬件连接 3. 代码实现 3.1 PWM.c 3.2 PWM.h 3.3 Servo.c 3.4 Servo.h 3.5 main.c 3.6 完整工程文件 PWM和OC输出详解&#xff1a; STM32定时器的OC比较和PWM​​​​​​​ 1. …

CentOS 7虚拟机配置过程中所需组件的安装(二)

1.安装net-tools组件&#xff08;解决无 ifconfig&#xff09; # yum install net-tools 2.安装gcc、c编译器以及内核文件 # yum -y install gcc gcc-c kernel-devel 验证安装成功 3.安装nano&#xff08;文本编辑器&#xff09; # yum install nano

python监听html click教程

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python实现监听HTML点击事件 在Web开发中&#xff0c;经常需要在用户与页面交互时执行一些…

500V 直流充电桩测试负载箱的基础知识

500V直流充电桩测试负载箱是一种专门用于测试和验证直流充电桩性能的设备。它能够模拟真实的充电过程&#xff0c;对充电桩的输出电压、电流、功率等参数进行精确的测量和控制&#xff0c;以确保充电桩的稳定性和安全性。 一、工作原理 500V直流充电桩测试负载箱主要由电源模块…

【Linux】Linux上如何挂载磁盘

目录 一、查看磁盘使用情况df -h 查看已挂载磁盘的大概使用情况fdisk -l 查看主机上所有磁盘设备的详细情况lsblk 查看主机上所有磁盘设备基本信息 二、进行磁盘挂载mkfs 在特定的分区上建立 linux 文件系统mount 进行磁盘挂载文件系统配置 一、查看磁盘使用情况 df -h 查看已…

3分钟了解拍摄VR全景需要哪些硬件

VR全景图片是一张水平方向360度&#xff0c;垂直方向180度&#xff0c; 图片尺寸宽高比为2:1的图片。 通过720yun APP或720yun官网上传生成全景H5页面&#xff0c;即可360度全方位观看画面中的景象。 拍摄VR全景有很多方法&#xff0c;下面介绍用单反相机、全景相机、智能手机…

OceanBase开发者大会实录-杨传辉:携手开发者打造一体化数据库

本文来自2024 OceanBase开发者大会&#xff0c;OceanBase CTO 杨传辉的演讲实录—《携手开发者打造一体化数据库》。完整视频回看&#xff0c;请点击这里&#xff1e;> 各位 OceanBase 的开发者&#xff0c;大家上午好&#xff01;今天非常高兴能够在上海与大家再次相聚&…

使用这 7 个绩效评估模板简化您的员工评估

绩效评估受到了不好的评价&#xff1b;员工发现它们压力很大&#xff0c;而管理者则发现它们很耗时。 但随着绩效管理成为 2024 年人力资源的首要任务&#xff0c;也许是时候重新思考了。绩效评估模板可以帮助减轻评估过程的麻烦。通过为管理者提供一种简单、标准化的方法来评…