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文件时,数据内容含有中文,读取出错,怎么办

python中怎么处理csv文件

详解pandas的read_csv()

python3中使用使用read_csv( )读取csv文件,文件路径中含有中文,无法读取怎么处理?

python如何筛选csv文件的内容

python 怎么读csv文件