python文件怎么读中文csv-Python读取 csv文件中文乱码处理

杨飞
2023-12-01

需求:

按行解析读取csv文件存入关系型数据库——主要是中文字体解析;

遇到的问题:

直接解析出来的数据为list形式,而且编码格式为unicode;

解决问题:

前提了解:

中文编码的规则 —— GB2312

字符串在Python内部的表示是unicode编码,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode("gb2312’),表示将gb2312编码的字符串转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode("gb2312’),表示将unicode编码的字符串转换成gb2312编码。

示例如下:

filepath:文件绝对路径

with open(filepath, mode='rb') as f:

reader = csv.reader(f)

# i 设置按行获取数据

for i, rows in enumerate(reader):

try:

# 解决读取csv文件中文格式乱码——gb2312只支持普通中文字符

row1 = [row1.decode('GB2312').encode('utf-8') for row1 in rows]

except:

#存在繁体时

#gbk支持繁体中文和日文假文

row1 = [row1.decode('GBK').encode('utf-8') for row1 in rows]

python 读取CSV文件 中文乱码

今天读取一个CSV文件,打印出来,中文显示乱码,原因是编码的缘故,CSV保存是编码格式ANSI,解决办法是以记事本方式打开CSV文件,然后另存为时编码选择UTF-8进行保存即可.

c# winForm使用Aspose.Cells读取CSV文件中文乱码问题

不废话直接上代码 主要注意是 红色代码部分 Aspose.Cells.TxtLoadOptions lo = new TxtLoadOptions();????????? ??????????? lo ...

解決BufferedReader读取UTF-8文件中文乱码

解決BufferedReader读取UTF-8文件中文乱码???? ??? File rst01 = new File(context.getRealPath("/")+&quot ...

golang 导出CSV文件中文乱码的问题

golang? 导出CSV文件中文乱码的问题 解决办法: 在csv文件的开头写入 UTF-8?BOM // 创建文件 dstf, err := os.Create("./data/&quot ...

python笔记5-python2写csv文件中文乱码问题

前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...

解决python中csv文件中文写入问题

一.前言 一般来说,为了方便,使用python的时候都会使用csv模块去写数据到csv文件,但是写入中文的时候,经常会报错: UnicodeEncodeError: 'ascii' codec can ...

Python 读取csv文件到excel

朋友问我如何通过python把csv格式的文件另存为xls文件,自己想了想通过读取csv文件然后再保存到xls文件中即可,也许还有其他简单的方法,但这里也为了练习python语法及其他知识,所以采用了 ...

【 D3.js 进阶系列 — 1.2 】 读取 CSV 文件时乱码的解决方法

在 D3 中使用 d3.csv 读取 CSV 文件时,有时会出现乱码问题. 怎么解决呢? 1. 乱码问题 使用 d3.csv 读取 xxx.csv 文件时.假设 xxx.csv 文件使用的是 UTF- ...

随机推荐

web前端性能调优

最近2个月一直在做手机端和电视端开发,开发的过程遇到过各种坑.弄到快元旦了,终于把上线了.2个月干下来满满的的辛苦,没有那么忙了自己准备把前端的性能调优总结以下,以方便以后自己再次使用到的时候得于得心 ...

Java基础之线程——使用Runnable接口(JumbleNames)

控制台程序. 除了定义Thread新的子类外,还可以在类中实现Runnable接口.您会发现这比从Thread类派生子类更方便,因为在实现Runnable接口时可以从不是Thread的类派生子类,并且 ...

最全的Android源码目录结构详解

Android 2.1|-- Makefile|-- bionic? ?? ?? ?? ?? ?? ?? ?? ?(bionic C库)|-- bootable? ?? ?? ?? ?? ? (启动引 ...

连分数(分数类模板) uva6875

//连分数(分数类模板) uva6875 // 题意:告诉你连分数的定义.求连分数,并逆向表示出来 // 思路:直接上分数类模板.要注意ai可以小于0 #include

OC与Swift的区别三(条件语句)

11.swift中的switch结构 区别一: oc中switch条件只可以放整数 swift中switch条件可以放几乎任何数据类型 区别二: oc中每一个case中应有break,如果没有brea ...

[转]ARM/Thumb/Thumb-2

ref:http://kmittal82.wordpress.com/2012/02/17/armthumbthumb-2/ A few months ago I gave a presentatio ...

[Bootstrap 源码]——bootstrap源码之初始化

bootstrap源码之初始化 我们先来分析normalize.less编译后的源码,我们知道normalize.css是一个专门将不同浏览器的默认css特性设置为统一效果的css库,它和reset. ...

thinkinginjava学习笔记02_对象

对象 1. 对象通过一个引用来操作,但是java中的对象是按值传递的,基本上可以在操作中认为对象本身,在内部结构中仍然要记得是对象实体的引用:如:String s = "abcd" ...

PHP批量去除bom头代码的小工具

在 aitecms 群里有网友抱怨了好几天说本地的验证码一直无法显示,后来听说解决了,问其如何解决的,说是去除了文件 bom 就好了.后来百度到一篇文章也说 dedecms 的验证码不能显示,某次解决 ...

Django的认证系统

Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

 类似资料: