python读取csv文件出现乱码(python读取csv中文报错)

http://www.itjxue.com  2023-03-25 09:27  来源:未知  点击次数: 

Pandas读取csv文件出现,AttributeError:'float' object has no attribute 'decode'

python3读取csv文件的默认编码为unicode,unicode并不是编码格式,而是字符集,它包含了世界上目前所有的符号,所以unicode没有decode属性

在read_csv的后面加上.astype(str)

python读取csv文件时,数据内容含有中文,读取出错,怎么办

读取文件错误现象:

触发DecodeError异常,程序终止运行并打印输出错误信息

主要原因:

一般是文件的编码方式与python的解码不一致造成

解决办法:

在读取文件时,通过encoding命名参数指定解码方式,比如encoding='utf-8'

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读取csv文件报错position4

一、文件路径报错

因为在python之中文件路径都是以字符串类型出现的,所以在字符串对象的编写语法本身没有错误时,那么出现报错的唯一原因就是这个文件路径找不到文件。这种问题主要经常出现在已经发布部署到服务器上的python程序,因为在开发时很多时候都是用绝对路径来读取文件的,环境改变之后从磁盘根目录读取的绝对路径就是无法使用了。

二、解决方法

那么正确的做事实际上就是先导入os模块,然后调用getcwd()方法查看当前python程序,也就是py脚本文件处在哪个文件路径之中,代码示例如下所示:

import os

os.getcwd()

print(os.getcwd())

然后再打开文件夹查看一下所要读取的csv文件在哪个文件目录,然后在文件资源管理器内打开csv文件所在的文件目录并将其复制后粘贴到python文件所在的同级目录下,接下来就可以使用绝对不会出错的相对路径来读取该csv文件了。只需要写上csv文件的名称就可以来将其在python程序内打开并读取,代码示例如下所示:

import pandas as pd

train = pd.read_csv

python写入csv文件字体设置

1、报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

写入csv时,设置为gbk格式,无需再转utf-8格式

import sys

reload(sys)

sys.setdefaultencoding('gbk')

登录后复制

2、把python里面的中文字符串decode成utf-8,再encode为gbk编码

data.decode('utf-8').encode('gbk')

如果是读取csv文件的话,就反过来:

data.decode('gbk').encode('utf-8')

3、Pycharm控制台中文输出乱码问题解决方案

设置完编码后,控制台扔乱码,也可能是设置字体导致的。

试了多次之后,解决不了,重装Pycharm,然后就好了

(责任编辑:IT教学网)

更多

推荐MYSQL文章