使用python处理中文csv文件,并让excel正确显示中文(避免乱码)

python csv写文件,用Excel打开中文乱码解决 最近在学习python爬虫,需要将爬取的数据存储为csv格式,方便用Excel打开更直观的分析。(这里应用的是豆瓣的排行榜,爬虫入门好像逃不脱这个网站,哈哈) python 中csv的代码段是这样的: import csv csv_headers = {'剧名','评分','年份','参与评论数'} # 打开一个用来存储数据的文件(文件可以是已经存在,也可以是不存在) f = open('douban.csv','w',encoding='utf-8') # 初始化一个csv.writer()对象 阅读详情

使用python2处理中文时,经常会出现乱码问题,之前使用python处理中文csv文件时,处理过程程序输出出现了乱码,最后在程序中能够正常显示出中文,但是导出文件时,使用excel打开出现了中文乱码问题,但是使用ultraedit打开时,能正常显示。现在找到了问题的所在,总结如下:

 

1)程序输出中出现乱码的原因是因为python2中中文编码的问题,需要注意的是要将处理的中文文件的编码和python源文件的编码保持一致,这样不会出现中文乱码。可以参考这两篇文章关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定和Python中用encoding声明的文件编码和文件的实际编码之间的关系

2)在程序中能够正常输出中文,但是导出到文件后使用excel打开是出现中文乱码是因为excel能够正确识别用gb2312、gbk、gb18030或utf_8 with BOM 编码的中文,如果是utf_8 no BOM编码的中文文件,excel打开会乱码。

 

根据以上两点,结合自己的情况:我使用的是jupyter的ide,创建的python源文件为utf8 no BOM格式的编码,而要处理的csv文件是用gbk编码的,所以我需要将使用gbk编码的csv文件转为utf_8编码。

 

 

import codecs

def ReadFile(filePath,encoding):
    with codecs.open(filePath,"r",encoding) as f:
        return f.read()
def WriteFile(filePath,u,encoding):
    with codecs.open(filePath,"w",encoding) as f:
        f.write(u)
'''
定义GBK_2_UTF8方法,用于转换文件存储编码
'''
def GBK_2_UTF8(src,dst):
    content = ReadFile(src,encoding='gbk')
    WriteFile(dst,content,encoding='utf_8')
    

'''
qyx.csv文件使用GBK编码存储,现在将其转为UTF_8存储
'''
src = 'qyx.csv'
dst = 'qyx_utf8.csv'
GBK_2_UTF8(src,dst)

 

 

 

 

 

使用上面的代码能够将使用GBK编码的文件转为UTF8编码的文件。接下来就是真正处理csv文件了。

 

import pandas as pd
from urllib import unquote

'''
读取转换存储格式后的文件
'''
path = 'qyx_utf8.csv'
data = pd.read_csv(path,)
data.head()

 

 

处理csv文件:

 

'''
使用unquote方法对第三列的url进行decode
'''
#data['newcol'] = data[u'关键词代码'].map(unquote) #这样会导致key识别错误,正确做法应该是去掉u
data['newcol'] = data['关键词代码'].map(unquote)#也可以使用ix来取得第三列的数据
#data['newcol'] = data.ix[:,3].map(unquote)

data.head()

 

 

 

 

 

将data导出到文件中:

 

'''
将结果导出到result.csv中,以UTF_8 with BOM编码(微软产品能正确识别UTF_8 with BOM存储的中文文件)存储
'''
#data.to_csv('result_utf8_no_bom.csv',encoding='utf_8')#导出的结果不能别excel正确识别
data.to_csv('result_utf8_with_bom.csv',encoding='utf_8_sig')

 

使用excel打开result_utf8_no_bom.csv和result_utf8_with_bom.csv,发现能够正确识别result_utf8_with_bom.csv文件

 

 

想学人工智能(Python、数据分析、机器学习、深度学习、推荐系统、强化学习),来公众号AI派看看吧!!

 

 

《Python常见问题》记录2:Python写入CSV的数据用Excel打开会乱码怎么解决? ​本篇将对以下两点展开叙述:(1)excel打开csv数据出现乱码的原因;(2)解决编码导致的csv文件乱码问题。 阅读详情

相关推荐

盘点CSV文件在Excel中打开后乱码问题的两种处理方法

CSV文件乱码问题主要表现为在Excel中打开文件后,原本应该显示正常字符的地方出现了乱码或特殊符号。这可能是由于CSV文件的编码格式与Excel默认的编码格式不一致,或者文件在传输过程中损坏导致的。为了解决这个问题,我们可以采取修改文件编码格式或利用文本编辑器进行预处理的方法。

这家伙很懒,什么都没有留下 2万+

CSV文件内容乱码处理办法

CSV文件内容乱码处理办法

Revin的博客 6万+

csv乱码怎么办?快速修复技巧大公开!

比如,一个以UTF-8编码保存的文件,如果用GBK编码打开,就会出现乱码。记住,遇到乱码不要慌,保持冷静,按步骤来,问题总是能够解决的。我为大家准备了几种方法,每种方法都有其特点,大家可以根据自己的情况选择最适合的。使用专业的文本编辑器:像Notepad++这样的编辑器可以方便地切换不同的编码方式,帮助我们快速识别和转换文件编码。统一使用UTF-8编码:在创建和保存csv文件时,尽量使用UTF-8编码,这是目前最通用的编码方式。使用这个脚本,你可以自动检测csv文件的编码,并将其转换为UTF-8编码。

m0_56280293的博客 1658

csv文件加bom python_【codecs.BOM】使用Python程序输出csv格式数据

这些天做一个数据处理的任务:要求是输出一个csv格式的文件。每次用NotePad++打开都正常,一用excel打开就一万个乱码,好不容易乱码没了,用作分隔符的逗号也进单元格去了(变成单列了)辛苦的查原因调试代码测试输出过程略去(以后要是有心情再来写好了)……重点是!~把能用的模板记录一下,以后说不定还要用呢QwQ[Convert2Csv.py]# -*- coding: utf-8 -*-impo...

weixin_36435325的博客 622

csv文件中文会乱码工具

excel打开csv文件中文乱码问题,将乱码文件拖到此工具就可完成转码,正常显示中文。

Python3操作读写CSV文件使用包过程解析

CSV(Comma-Separated Values)即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型(注意:数字为字符串类型)。 如果CSV中有中文,应以utf-8编码读写,如果要支持Excel查看,应是要用utf-8 with bom格式及utf-8-sig Python3操作CSV文件使用自带的csv包 reader=csv.reader(f, delimiter=’,’):用来读取数据,reader为生成器,每次读取一行,每行数据为列表格式,可以通过delimiter参数指定分隔符 writer=csv.writer(f):用来写入数据,按行写入,writ

python3 csv读写_python3 csv

一、python3 csv 的中文乱码解决方案将文件保存为 csv 格式的话,用记事本打开是没有问题的,但用excel 打开就会乱码,在网上找了些解决方法都是适用python2这里提供下一个解决方案>>> import csv>>> import codecs>>> data = [('小河', '25', '1234567'),('小芳', '18', '789456')]>>> csvfile...

weixin_39850062的博客 211

全网最全的AItium Designer 16下载资源与安装步骤

Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。...

WQ的博客 1万+

【codecs.BOM】使用Python程序输出csv格式数据

这些天做一个数据处理的任务: 要求是输出一个csv格式的文件。 每次用NotePad++打开都正常,一用excel打开就一万个乱码, 好不容易乱码没了,用作分隔符的逗号也进单元格去了(变成单列了) 辛苦的查原因调试代码测试输出过程略去(以后要是有心情再来写好了)…… 重点是!~ 把能用的模板记录一下,以后说不定还要用呢QwQ

CD's Coding 7146

1、Ovirt 开源虚拟化平台安装

Ovirt虚拟化Node和Engine安装

大鱼 6266

如何使用AKShare作为OpenBB的数据源

`openbb_akshare`项目是 OpenBB 的数据源扩展。可以用于查询A股和港股数据

FinAnalyzer金融分析工具 3195

使用Python解决CSV文件中中文乱码的问题

如果CSV文件中的中文是乱码,通常该CSV文件的编码格式是UTF8的. 为了中文显示正常,需要将CSV文件的编码格式转换为GBK格式. 代码: import pandas as pd #utf编码格式的csv文件中的中文一般会是乱码,这时需要把文件格式另存为gbk格式 def csv_utf_2_gbk(srcPath): try: data=pd.DataFra...

BOKE 8153

告别校准烦恼:用ADS1220和松下ERA3电阻实现±0.05℃精度的Pt100测温方案(附完整电路图)

本文详细介绍了如何利用TI的ADS1220 24位ΔΣ ADC与松下ERA3系列精密电阻构建±0.05℃精度的免校准Pt100测温系统。通过比例测量法架构和关键器件选型,解决了传统方案中的校准繁琐和长期稳定性问题,特别适用于工业控制、医疗设备等高精度温度测量场景。

weixin_30740581的博客 611

csv文件怎么转成excel_Excel导入CSV文件乱码?两个小方法让文件正常显示

最近网友抱怨,收到别人发来的数据表,打开后长这样:CSV再EXCEL中显示为乱码除了数字,其他是啥玩意儿完全乱码。。。(乱码!乱马!乱吗?乱!)但是当使用记事本打开,检查确认是否文件有问题时,显示完全正常,根本没有乱码。CSV在记事本中显示正常用最最普通记事本打开文件能够正常显示,用Excel打开却显示不正常。。。这是怎么回事?(乱马也在想...)难道没安装好需要卸载重装?(走投无路的招数,然并卵...

weixin_39996134的博客 1万+

西电 程序设计基础课程设计 作业

当时做的程序设计课程的作业. 一共五题, 以报告的形式提交. 质量应该比较高(高傲). 完整内容在这里 高精度计算 问题描述 涉及知识点: 数组, 流程控制, 函数等 要求: 用整型数组表示10进制大整数(超过 2322^{32}232 的整数), 数组的每个元素存储大整数的一位数字, 实现大整数的加减法. 问题分析 结构设计 可将高精度整数写成一个类. 成员变量有: int a[MAXN], len; bool negative; 其中, 数组a用来存储大整数的一个数位, a[1]为个位上的数字, a

Wings 2513

项目管理知识体系(PMBOK)中的质量规划详解

你是否遇到过这些场景?软件上线后用户投诉“功能漏洞多”,团队连夜返工;装修完的房子墙面开裂,施工方和业主互相推诿;新研发的手机电池续航不达标,被迫延迟发布。这些问题的根源,往往是项目启动时没有做好质量规划。本文聚焦PMBOK中“质量规划”(Plan Quality Management)过程,覆盖其核心概念、操作步骤、工具技术与实战应用,适用于IT、建筑、制造等各类项目场景。

项目管理的博客 1117

python写入csv文件的中文乱码问题

中文乱码 今天练习爬虫,突然心血来潮想要顺便回顾一下csv,运行保存完之后我傻了,全是中文乱码。所以这次解决完后在抓紧记在小本本上~~ 好啦,言归正传,先贴代码 with open('test.csv','w',encoding='utf-8',newline='')as csvfile: writor = csv.writer(csvfile) new_list = list(x.items()) #把字典转为列表 for i in new_list: wri

weixin_46640900的博客 1万+

PLC的模糊PID控制

模糊PID控制包括模糊化,确定模糊规则,解模糊等组成部分,小车通过传感器采集赛道信息,PLC通过温度传感器获取炉内温度,确定当前实际温度和设定目标值的偏差e(error), e=setpoint-input以及偏差的变化ec(当前偏差-上次偏差),根据给定的模糊规则进行模糊推理,最后对模糊参数进行解模糊,输出PID控制参数 其次我们需要对这2个参数进行模糊化,e 、 ec 这里我对e进行举例,两个输入的标准化范围都在 [-1,1] 范围内。模糊逻辑控制器还产生范围 [-1,1] 内的归一化输出。 博

RXXW_Dor的博客 1万+

Python问题解决-Excel打开CSV格式内容时中文出现了乱码

1 问题描述 在Python爬虫保存数据或者日常办公中需要下载csv文件,但是有时打开Excel文件后的中文字符是乱码,这时候该怎么办呢,本文将分享经验,如何解决Excel打开csv文件后中文乱码的问题。 2 问题解决 第1步 首先 来看一下乱码时的内容,如图1所示: 图1 第2步 接下来,先正常打开一份空白的excel文件,将鼠标定位在第一行第一列(这边鼠标定位的位置将决定后续打开的csv文...

Blessy_Zhu的博客 8977

YOLO26涨点改进 | 独家创新、损失函数改进篇 | TGRS 2025顶刊 | 带来AIoU小目标涨点损失函数,增强了目标检测中对边界框形状和尺寸的敏感度,适合复杂场景和小物体检测中有效涨点

AIoU损失函数通过自适应形状感知和尺寸敏感加权机制,有效解决了YOLO26原生损失函数在小目标检测中的缺陷。实验结果表明,AIoU损失函数在多个数据集上均取得了显著的性能提升,尤其在小目标检测和多任务场景下表现突出。自适应形状感知,对形状差异较大的目标给予更大惩罚,提高边界框拟合精度尺寸敏感加权,对小目标的宽高比例差异给予更大权重,增强模型对小目标特征的学习能力梯度连续性好,即使在IoU=0时仍能提供有效的梯度更新,解决小目标梯度消失问题。

qq_36130719的博客 158

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【python应用】excel文件转csv

注意:get_sheet_by_name()方法已经未使用了,继续使用会出现警告:DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).1、处理数据时,正常存储显示的中文在写入到csv文件时变成了乱码,文件的编码未能正确处理中文,需要在写入csv文件时指定编码。如果需要的话,可以在工作簿中新建多个工作表。xlsx文件解析处理: openpyxl库。csv文件格式生成:csv。

weixin_44416114的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python 2.7 解决写入文件的中文乱码问题

续:python之xml文件处理的例子-问题描述及解决方法 从一个文件中读入中文字符再写入到另一个文件中,遇到中文乱码问题。学习到一个方法解决这个问题,分享如下。   环境: python 2.7   背景:待处理的xml文件中有中文字符,想要提取文件中的一部分指定字段写入到Excel文件中,实际写入的是一个CSV文件,以.csv为后缀,文件生成之后可以转换为Excel表格。

¥ = C^2 + C++ 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

mac系统下excel打开csv中文乱码

原因 csv文件通常是utf-8进行编码的,mac系统使用的也是utf-8编码,按理来说mac系统下打开csv文件轻而易举,即便是中文也不应出现乱码。 的确,用numbers和textFile打开csv文件,或者在mac里采用预览模式时,是不会出现中文乱码的。 而用excel打开csv,就出现了乱码,那问题只能出在excel身上。 实上excel采用的是ANSI编码,无法识别utf-8编码下的...

yellowsheep96的博客 1万+

Mysql数据库导出为csv或excel文件 中文乱码解决方法

Mysql数据库导出为csv或excel文件 中文乱码解决方法 直接上代码: import pandas as pd import csv import pymysql import os def JoinDB(): conn = pymysql.connect(host='localhost', user='root', passwd='512WHZxx', db='poems') ##创建游标 cur = conn.cursor() ##执行sql语句 c

weixin_43952176的博客 1763

python写入csv文件用excel打开是乱码

用以下代码写入csv文件,明明已经utf-8了,用Excel打开却是乱码,百度之后顺利找到解决方法, 原来把excel设置成自文本就行… import csv newfile = open('newone.csv','w',encoding='utf-8',newline='') wr = csv.writer(newfile) wr.writerow(['姓名','角色']) wr.writ...

Nikki0126的博客 6473
上一篇: Python模块之codecs
下一篇: Python模块之os
Wang_AI
博客等级 码龄12年 988粉丝 162原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值