python读取csv文件时,数据内容含有中文,读取出错,怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python读取csv文件时,数据内容含有中文,读取出错,怎么办相关的知识,希望对你有一定的参考价值。
参考技术A 读取文件错误现象:触发DecodeError异常,程序终止运行并打印输出错误信息
主要原因:
一般是文件的编码方式与python的解码不一致造成
解决办法:
在读取文件时,通过encoding命名参数指定解码方式,比如encoding='utf-8' 参考技术B
先看一下这个文件编码格式
在打开文件open的时候设定encoding参数
python 怎么读csv文件
CSV文件本质上就是文本文件,只不过每行的数据用逗号分隔。
所以你当成文本文件打开一行一行的读然后拆分就可以了。
data = []with open(r'd:\\temp\\demo.csv', 'r') as csv_file:
for line in csv_file:
data.append(line.strip().split(','))
print(data)
# 另外Python标准库里有个CSV模块可以用。
import csv
with open(file_path, 'rb') as csv_file:
data = list(csv.reader(csv_file))[1:] # 去掉首行的列名
还有就是可以用Pandas这个库,dataframe有导入csv功能。
参考技术A 典型的可处理的csv文件,通常含有表头,也就是每列的列名。这样一来,每一行的内容就可以被当作是以表头为key的字典。于是可以使用csv定义的类:class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)
下面是官方的例子(Python 3)。我们看到,对于csv文件的内容,我们可以通过相应的tag,也就是字典的key来读取。
在实际使用过程中,为了分离代码和方便阅读,可以先把读取的内容转存到列表,随后再根据各个key进行分开处理(针对多列的情况)。本回答被提问者采纳 参考技术B 什么是CSV
就是内容用逗号隔开,后缀是‘.csv’的文件。它可以被任何一个文本编辑器打开。如果用excel打开,它又可以是这样的:
END
读CSV
典型的可处理的csv文件,通常含有表头,也就是每列的列名。这样一来,每一行的内容就可以被当作是以表头为key的字典。于是可以使用csv定义的类:
class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)
下面是官方的例子(Python 3)。我们看到,对于csv文件的内容,我们可以通过相应的tag,也就是字典的key来读取。
在实际使用过程中,为了分离代码和方便阅读,可以先把读取的内容转存到列表,随后再根据各个key进行分开处理(针对多列的情况)。 参考技术C Python 2.7.13 (default, Jan 19 2017, 14:48:08)
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import csv
>>> help(csv) 参考技术D 可以使用pandas比较方便:
import pandas as pd
csvframe = pd.read_csv('myCSV_01.csv', header=None)
以上是关于python读取csv文件时,数据内容含有中文,读取出错,怎么办的主要内容,如果未能解决你的问题,请参考以下文章
python读取csv文件时,数据内容含有中文,读取出错,怎么办