python 写入csv文件 内容乱码

问题

python 写入csv文件 内容乱码

详细问题

笔者核心代码

import csv 
# 将数据写入 CSV 文件
csv_file_path = "soil_data.csv"
header = ["经度", "纬度", "土壤类型", "pH值"]with open(csv_file_path, mode="w", newline="", encoding="utf-8") as file:writer = csv.writer(file)writer.writerow(header)# random_points为生成的随机点writer.writerows(random_points)print(f"数据已成功写入到 {csv_file_path}")

查看文件,所有文字内容乱码
在这里插入图片描述

解决方案

修改代码,将写入文件的编码格式由utf-8改为utf-8-sig
对于笔者而言,即将

with open(csv_file_path, mode="w", newline="", encoding="utf-8") as file:

改为

with open(csv_file_path, mode="w", newline="", encoding="utf-8-sig") as file:

即可解决:
在这里插入图片描述

产生原因

问题产生的原因是由于笔者在写入 CSV 文件时,使用了 utf-8 编码,但 Excel 默认使用 BOM(字节顺序标记)来标识文件编码。在某些情况下(譬如涉及中文内容),将可能导致 Excel 中显示的文件内容出现乱码。

解决原因

使用了 utf-8-sig 编码,将在文件开头添加 BOM,适用于在 Excel 中正确显示中文。这样,Excel 就能正确识别文件的编码并显示内容。

参考文献

产生原因与解决原因部分内容 部分参考chatgpt
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
请添加图片描述

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

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

相关文章

【PyTorch实战演练】Fast R-CNN中的RoI(Region of Interest)池化详解

文章目录 0. 前言1. ROI池化的提出背景2. RoI池化的结构与工作原理3. RoI池化的作用及意义4. RoI使用示例 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方…

优化器刺客之limit 1--Order by col limit n 代价预估优化探索

一、现象 order by 排序加了limit后更慢了? test# explain analyze select userid from dba_users where username like %aaaaaaaaaaaaaaaaaa% order by userid ;QUERY PLAN --------------…

ElementUI Form:Radio 单选框

ElementUI安装与使用指南 Radio 单选框 点击下载learnelementuispringboot项目源码 效果图 el-radio.vue 页面效果图 项目里el-radio.vue代码 <script> export default {name: el_radio,data() {return {radio: 1,radio2: 2,radio3: 3,radio4: 上海,radio5: 上海,ra…

12个适合后端程序员的前端框架

前言 今天我们分享12个适合后端程序员的前端框架&#xff0c;本文中的所有前端框架都已经收录到适合后端程序员的前端框架GitHub Issues知识库中&#xff0c;假如大家有更好前端框架推荐欢迎到以下GitHub项目地址留言或者在文末留言&#xff08;注意&#xff1a;排名不分先后&a…

c#鼠标绘制

有用的没用的&#xff0c;用的上的用不上的&#xff0c;能写的不能写的&#xff0c;反正想起来就写了&#xff0c;比如这篇&#xff0c;好像一般也没什么用&#xff0c;emmm&#xff0c;或许&#xff0c;做录制软件的时候可以用一下。 顾名思义&#xff0c;本篇主要就是来实现将…

dvwa,xss反射型lowmedium

xss&#xff0c;反射型&#xff0c;low&&medium low发现xss本地搭建实操 medium作为初学者的我第一次接触比较浅的绕过思路high low 发现xss 本关无过滤 <script>alert(/xss/)</script> //或 <script>confirm(/xss/)</script> //或 <scr…

幻兽帕鲁服务器游戏怎么升级版本?

幻兽帕鲁服务器游戏怎么升级版本&#xff1f;自建幻兽帕鲁服务器进入Palworld游戏提示“您正尝试加入的比赛正在运行不兼容的游戏版本&#xff0c;请尝试升级游戏版本”什么原因&#xff1f;这是由于你的客户端和幻兽帕鲁服务器版本不匹配&#xff0c;如何解决&#xff1f;更新…

故障诊断 | 一文解决,SVM支持向量机的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,SVM支持向量机的故障诊断(Matlab) 支持向量机(Support Vector Machine,SVM)是一种常用的监督学习算法,用于分类和回归分析。SVM的主要目标是找到一个最优的超平面(或者在非线性情况下是一个最优的超曲面),将不同类别的样本分开…

Flutter的安装与环境配置

一、下载安装Futter&#xff1a; 1、Flutter中文文档&#xff1a; 安装和环境配置 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 2、下载 Futter SDK&#xff1a; Flutter中文文档 里面有&#xff0c;下载完成之后找个文件夹解压出来&#xff0c;最好不要将 Flu…

大数据分析|从七个特征理解大数据分析

文献来源&#xff1a;Saggi M K, Jain S. A survey towards an integration of big data analytics to big insights for value-creation[J]. Information Processing & Management, 2018, 54(5): 758-790. 下载链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1…

轩辕编程(Java第十一讲):Java类的多态性

多态在程序设计中指“一种定义&#xff0c;多种实现” 多态性是面向对象的核心特征之一&#xff0c;主要有方法的多态和类型的多态。方法的多态包括方法的重载和覆盖&#xff0c;为一种功能提供多种实现&#xff1b;类型的多态表现为&#xff0c;子类是一种父类类型。 子类声…

qiankun子应用静态资源404问题有效解决(遇到了http请求静态文件404、css文件引用图片无法显示、svg图片转换成 base64无法显示等问题)

在&#x1f449;&#x1f3fb; qiankun微前端部署&#x1f448;&#x1f3fb;这个部署方式的前提下&#xff0c;遇到的问题并解决问题的过程 >> 问题现象 通过http请求本地的静态json文件404 css中部分引入的图片无法显示 >> 最开始的解决方式 在&#x1f449;…

微信小程序(二十五)条件判断语句与结构隐藏

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.条件判断语句的演示 2.隐藏结构的演示 源码&#xff1a; index.wxml <view><!-- wx:if和wx:else为条件判断语句 --><text wx:if"{{isLogin}}">已登入的用户</text><tex…

Java中如何详细的打印出具体报错的堆栈信息

在遇到日志打印的时候&#xff0c;当使用log.error("Exception{}", e.toString()); 当使用这种方式打印&#xff0c;只会打印关键的信息&#xff0c;不会打印出栈堆信息&#xff0c;从而无法准确定位到具体某一行发生的错误 比如&#xff0c;在一个接口有方法对一个…

【HarmonyOS应用开发】ArkUI 开发框架-基础篇-第一部分(七)

常用基础组件 一、组件介绍 组件&#xff08;Component&#xff09;是界面搭建与显示的最小单位&#xff0c;HarmonyOS ArkUI声明式开发范式为开发者提供了丰富多样的UI组件&#xff0c;我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。组件根据功能可以分为以下五大类…

C语言中为无符号类型变量赋值时,数据类型应怎样转换?

一、问题 为无符号类型变量赋值时&#xff0c;数据类型应怎样转换&#xff1f; 二、解答 1、有符号到无符号的转换 (1)如果将一个有符号整数赋给一个无符号类型变量&#xff0c;并且该有符号数是负数&#xff0c;在转换过程中&#xff0c;C语言会 将有符号数的二进制补码形式…

Flink中StateBackend(工作状态)与Checkpoint(状态快照)的关系

State Backends 由 Flink 管理的 keyed state 是一种分片的键/值存储&#xff0c;每个 keyed state 的工作副本都保存在负责该键的 taskmanager 本地中。另外&#xff0c;Operator state 也保存在机器节点本地。Flink 定期获取所有状态的快照&#xff0c;并将这些快照复制到持…

RabbitMQ和Kafka对比

RabbitMQ和Kafka都是流行的消息传递系统&#xff0c;但它们在设计哲学、功能特性和最适用的场景上有所不同&#xff1a; 1. 设计和架构 RabbitMQ: 基于AMQP&#xff08;高级消息队列协议&#xff09;。传统的消息代理&#xff0c;支持多种消息模型&#xff0c;如点对点、发布/…

Android Studio 安装配置教程 - Windows版

Android Studio下载 安装&#xff1a; 下载&#xff1a; Android Studio Hedgehog | 2023.1.1 | Android Developers (google.cn) 安装&#xff1a; 基本不需要思考跟着走 默认下一步 默认下一步 自定义修改路径&#xff0c;下一步 默认下一步&#xff0c;不勾选 默认下一…

C++ 11新特性之auto和decltype

概述 在C 11标准中&#xff0c;引入了两大关键类型推导机制&#xff0c;即&#xff1a;auto关键字和decltype表达式。这两个特性不仅极大地简化了代码编写&#xff0c;提升了可读性&#xff0c;还为开发者提供了更加灵活、直观的类型声明方式。本文将详细解读auto和decltype的概…