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}")

查看文件,所有文字内容乱码
python 写入csv文件 内容乱码_第1张图片

解决方案

修改代码,将写入文件的编码格式由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:

即可解决:
python 写入csv文件 内容乱码_第2张图片

产生原因

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

解决原因

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

参考文献

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

你可能感兴趣的:(python,开发语言)