导航:首页 > 编程语言 > python处理excel乱码

python处理excel乱码

发布时间:2025-05-16 18:09:01

A. 乱码文件怎么删除

乱码文件怎么删除(乱码文件电脑 怎么删除掉)

当我们用 python 来处理有乱码的文件时,经常会遇到编码错误,有时候不得不加一个 errors = 'ignore' 参数来忽略错误,

今天分享一下如何用 Python 删除这些乱码,得到一个干净的文件。

先说下思路:用二进制方式打开文件,这样就不会出现编码问题,然后读取每一个字节,只要这个字节不在我们使用编码的范围内,就把它踢掉,然后保存剩下的字节,我们得到的就是一个干净的文件。

比如说这样 ascii 编码的文件,它含有乱码:

处理完之后是这样的:

代码是这样写的:

import struct def is_good_byte(b): """ 电脑 可以自定义什么是好字节,比如 GBK 的字节范围可以在这里定义好 """ return b <= 127def clean_bytes(bs): return 电脑 filter(is_good_byte, bs)def clean_file_bin(): with open("names.txt", mode = "rb") as reader: 电脑 with open("cleaned_names.txt", mode = "wb") as writer: for line in reader: for byte in clean_bytes(line): writer.write(struct.pack('B',byte))if __name__ == '__main__': clean_file_bin()

上面这段代码是一个字节一个字节来处理的,如果是多字节编码,可以自行修改代码逻辑,比如一次读取 3 个字节,判断这三个字节是否一个合法的字节组合。

对于中英文混合的,比如:

>>> x'abc中国'>>> x.encode("GBK")b'abcxd6xd0xb9xfa'>>> for i in x.encode("GBK"):... print(i)...979899214208185250>>>

需要综合判断,先判断是否英文字母,是的就放行,然后看接下来的两个字节是否在 GBK 的编码范围之内,是的就放行,不是就要删除,看看是删除一个字节,还是两个字节就要继续判断了。删除的依据就是不会造成更多乱码。

电脑

原文链接:

https://mp.weixin.qq.com/s/ZhsbGIoR6HkJHetlOjStWQ


电脑 电脑

B. 超简单:Python 5步去中国式报表表头

面对带有中国式报表表头的Excel文件,繁琐的手动调整操作可能会给数据处理带来极大不便。为提高效率,通过Python进行自动化处理成为了一个更加便捷的选择。下面是使用Python进行简单步骤处理的方法:

为了适应您的工作需求,确保代码的通用性与灵活性,请将“file_path”修改为您所需的文件路径,路径应为Windows系统文件路径,并在路径前后添加单引号或双引号。同时,文件路径允许包含中文字符。

在处理时,选择一个适合的文件名,即“df”,您可以根据实际情况进行修改。

若报表表头为多行,例如第二行开始,设置“skiprow=1”;如果表头包含n行,则将“skiprow”值调整为n-1。

“name=None”部分无需改动。

针对数据范围的读取,使用“usecols=’A:AH’”进行指定。若不需特定列范围,可省略此步骤。对于非连续列的读取,可以采用“usecols=‘A,C,E:AH’”的格式,其中单列间用英文逗号分隔,连续列用英文冒号。

如果文件包含多个sheet页,需要在“sheet_name”参数中列出,例如“sheet_name=['sheet名称', 'sheet名称']”。注意,英文名称需注意大小写。

在进行数据处理后,保存文件时确保与“df”保持一致性,并选择期望的导出位置及文件名。此操作将自动覆盖同名文件。

在处理过程中,使用英文中括号“[]”定义列名,并确保其顺序与“usecols”一致。列名使用英文时,输入更加便捷。中文列名应使用单引号或双引号括起。

最后,根据实际需求调整“encoding”参数,以解决中文字符可能导致的乱码问题。默认设置通常能够满足基本需求,无需额外调整。

综上所述,通过上述Python代码的五个步骤,您可实现高效处理带有中国式报表表头的Excel文件,大大提升工作效率,并确保工作流程的一致性与稳定性。

C. python解决csv文件用excel打开乱码问题

【问题】

python输出的csv文件用excel打开,里面的中文会变成乱码,但用window下的记事本或mac下的numbers打开就正常显示。

原因是python输出的文件是utf-8编码写入的,excel默认以gbk方式读取,导致乱码发生。

【解决方法1】文件产出时encoding设置为utf-8-sig    

用excel打开csv时,excel会先检查文件的第一个字符,来了解这个文件是什么编码方式,如果这个字符是BOM,excel就知道用utf-8的方式打开这个文件。python自带了处理BOM的编码方式uft-8-sig,因此只需要在文件产出时将encoding设置为utf-8-sig。

如果文件不是由python产出的,只需要以utf-8方式读入再以utf-8-sig方式存储即可

【解决方法2】懒人法,适用只含简体中文的文件

用记事本打开,点击另存为,右下角编码方式选择“ANSI”,这个过程是把这个文件改成gbk编码格式,excel就是默认用gbk方式打开的。

参考: Python写的csv文件,如何让 Excel 双击打开不乱码? - 云+社区 - 腾讯云

对编码格式一窍不通的可以阅读以下网页

python笔记——二进制和文件编码_砍柴姑娘Jourosy的博客-CSDN博客

编码方式之ASCII、ANSI、Unicode概述 - 蓝海人 - 博客园

【简单总结】:

1. 首先需要了解 字符集 和 字符编码 两个概念,字符集定义了字符和二进制的一一对应关系,字符编码规定了如何将字符的编号存储到计算机中。

2. Unicode是字符集,包含了全球文字的唯一编码,utf-8是编码方式,将unicode以某种方式存储到计算机中。

3. 有些字符集和编码是结合在一起的,称作字符集还是编码都无所谓,比如ASCII,GBK

4. ANSI是各个国家地区不同扩展编码方式的总称,互不兼容(可以看出来通用性没有utf好)

5. 不同编码方式在转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

阅读全文

与python处理excel乱码相关的资料

热点内容
c开源cf源码 浏览:947
如何取消掉添加进app资源库 浏览:728
上海政务APP叫什么 浏览:812
黑马程序员一线薪资 浏览:109
滴滴app有青桔优惠券怎么用 浏览:123
删哪几个文件夹加速 浏览:28
创建电影源码爬取项目 浏览:453
java多余的空格 浏览:83
手机软件连接云服务器 浏览:888
内圆弧编程实例 浏览:48
饼干pdf 浏览:423
kylin源码大全 浏览:687
android构建工具 浏览:422
zigy命令行选项不兼容 浏览:561
加密系统能录屏吗 浏览:190
安卓淘宝点进去跳链接如何关闭 浏览:786
u盘加密了手机读取不了 浏览:947
oracle11g启动命令 浏览:931
怎么把视频传到自己的文件夹 浏览:700
福州电动车在哪个app上摇号 浏览:818