问题
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
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈