精华内容
下载资源
问答
  • 无效方法:使用python读取含有中文的csv文件的时候常常遇到编码错误,因此就想把csv文件编码改为utf-8编码方式,用excel打开另存为utf-8格式没法解决问题,可以采用以下方法: 有效方法:首先,将.csv文件保存一下...
    使用utf-8编码打开csv文件时候报错,如下:
    fo = open("2.csv","r",encoding="utf-8")

    尝试解决(修改cvs文件编码):

    无效方法:使用python读取含有中文的csv文件的时候常常遇到编码错误,因此就想把csv文件编码改为utf-8编码方式,用excel打开另存为utf-8格式没法解决问题,可以采用以下方法:

    有效方法:首先,将.csv文件保存一下,然后鼠标右击打开方式记事本。

              然后,以记事本的方式打开了。

              文件-另存为 这时弹出一个窗口,右下方,编码,这时候你就可以选择自己想要的编码格式,然后保存,就可以了。

    再次读取文件:

    fo = open("2.csv","r",encoding="utf-8")

    虽然取出来的内容不是乱码,但是前面带了\ufeff

    \ufeff 这是哪来的呢?网上搜索后发现原来是文本保存时包含了BOM(Byte Order Mark,字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码)导致的,解决方法是使用 utf-8-sig 编码,即

    fo = open("2.csv","r",encoding="utf-8-sig")

    得到结果如下:

     

    展开全文
  • ”’利用pythoncsv模块将数据库查询到的结果保存到csv文件 MySQLdb模块 csv模块 ”’-- coding:utf-8 --import MySQLdb import csv import codecs打开数据库db = MySQLdb.connect(host=’localhost’,user=...

    ”’利用python的csv模块将数据库查询到的结果保存到csv文件中
    MySQLdb模块
    csv模块
    ”’

    -- coding:utf-8 --

    import MySQLdb
    import csv
    import codecs

    打开数据库

    db = MySQLdb.connect(host=’localhost’,user=’root’,passwd=’19940405’,db=’S_T’,charset=’utf8’)

    使用cursor()获取数据库游标

    cursor = db.cursor()

    创建sql语句

    sql = ”’
    SELECT *
    FROM Student
    ”’
    cursor.execute(sql)
    content = cursor.fetchall()
    data = []
    temp = []
    for line in content:
    for i in line:
    temp.append(i)
    for con in range(0,len(temp),5):
    t = (temp[con].encode(‘gbk’),temp[con+1].encode(‘gbk’),temp[con+2].encode(‘gbk’),temp[con+3],temp[con+4].encode(‘gbk’))
    data.append (t)

    令人无解的编码问题困扰了我半天,对中文真心不友好

    with open(‘csv_datavase4.csv’,’wb’) as csvfile:
    writer = csv.writer(csvfile)
    #writer.writerow([‘学号’,’姓名’,’性别’,’年龄’,’专业’])
    add = [u’学号’.encode(‘gbk’),u’姓名’.encode(‘gbk’),u’性别’.encode(‘gbk’),u’年龄’.encode(‘gbk’),u’专业’.encode(‘gbk’)]
    #这里也是一样,单独写入到没这么麻烦,与注释部分一样
    writer.writerow(add)
    writer.writerows(data)
    print u’写入完毕’

    展开全文
  • 之前在写一个简单的分班程序的时候,使用如下命令行读取csv文件, with open('city.csv') as f: lines = f.readlines() 出现了报错: ‘utf-8’ codec can’t decode byte 0xb1 in position 0: invalid st...
        
    注:该文章基于mac环境。

    之前在写一个简单的分班程序的时候,使用如下命令行读取csv文件,

    with open('city.csv') as f:
        lines = f.readlines()

    出现了报错:

    ‘utf-8’ codec can’t decode byte 0xb1 in position 0: invalid start byte

    含义为程序由于文件编码问题无法读取文件。查找了一些解决方法后终于解决,稍稍总结。

    出现此种问题的原因,可能来自python程序本身或文件。一是python文件可能没有声明读取文件的编码方式,导致程序无法读取,对应解决方法一;二是文件本身的编码不是utf-8格式,导致程序无法读取,对应解决方法二。

    解决方法一:在python文件中加入编码方式声明

    在python文件开头加入一行编码方式声明代码,使用# -*- coding: utf-8 -*-#code=utf-8均可。该行声明了该python程序读取文件的编码格式为utf-8。

    如果是由于python程序出现的问题,此时再次运行程序,应不再报错。如仍报错,可使用方法二解决。

    解决方法二:修改文件编码方式/修改程序读取方式

    假设文件存放路径为/Desktop/system_code/city.csv。打开终端(在应用程序搜索“terminal”),使用cd命令查看system_code文件夹并使用vim命令打开city.csv, 代码如下:

    $ cd Desktop/system_code/
    $ vim city.csv

    此时终端会显示文件详细内容。之后使用:set命令查看文件详情:
    latin1编码
    可以看到第4行中fileencoding=latin1,说明此时文件编码方式为latin1而非utf-8。

    1.修改程序读取文件时的编码方式
    如果只需要程序适应这一个文件的话,直接修改程序读取文件的编码方式即可,如下。

    with open('city.csv', encoding="latin1") as f:
        lines = f.readlines()

    2.修改文件编码
    有的时候程序需要读取多个文件,而对文件本身就要求为utf-8的格式,这时候就只能修改文件编码了。

    之前在查找解决方式的时候看到了两种,第一种使用iconv命令,修改成功。第二种使用vim命令,修改后文件出现乱码。这里将两种都列出。

    2.1 使用iconv命令修改
    命令为:

    iconv -f gbk -t utf-8 origfilename > resultfilename

    其中,-f后为源文件编码,-t后为转换后文件编码,origfilename为需要转码的文件,resultfilename为保存至的文件。之前我尝试了使用latin1进行转码,发现转出后为乱码,使用gbk则成功,不知道是不是因为文件内容为中文。

    以我的文件为例,需要转码的文件为city_latin.csv, 希望将转码后文件保存为city_new.csv,则使用如下命令:

    iconv -f gbk -t utf-8 city_latin.csv > city_new.csv

    之后使用vim命令查看city_new.csv的编码可看到city_new.csv为正常的utf-8编码文件。

    2.2 使用vim命令修改

    注:此方式在我的电脑中转换出现乱码,因此不推荐。
    :set fileencoding=utf-8

    之后再次使用:set命令查看文件格式,可发现文件的编码格式已经被修改为utf-8:
    utf-8编码

    最后使用:wq命令写入文件并退出vim即可。

    展开全文
  • 因为涉及到讨厌的编码问题,所以找了好多办法去尝试读取csv文件: 1. pandas pandas可谓是神奇,用python学习机器学习不可缺少的一个包。 使用pandas的时候也进行了尝试,起初encoding是utf-8,但是无法读取出来...

    由于本人准备学习使用一些机器学习算法,第一个是DecisionTree,然后使用到了西瓜案例:
    用到的西瓜案例

    因为涉及到讨厌的编码问题,所以找了好多办法去尝试读取csv文件:
    1. pandas
    pandas可谓是神奇,用python学习机器学习不可缺少的一个包。 使用pandas的时候也进行了尝试,起初encoding是utf-8,但是无法读取出来,所以改成了gbk,这个其实不用担心,等有了一些经验的时候,就不用为这个部分犯愁了
    pandas.csv_reader(‘xxx.csv’,encoding=’gbk’)使用pandas读csv
    2. csv
    这个库的使用确实比较恶心,读取内容为英文的csv还行,但是读取中文的csv的不会是unicode结构,因为机器默认的是ASCII码结构
    这里写图片描述
    这是在网上找到的解析
    比方说,我们把’编号取出来’,
    我们会发现,那一堆乱七八糟的码就成了‘编号’
    其实是python中str发挥了作用,它会把人看不懂的转成人能看懂的,这是通俗的说法,实则是会把ascii码进行转换
    这里写图片描述
    ascii码和unicode
    这里写图片描述

    展开全文
  • 在写入CSV文件时,如果含有中文字符,再次读取该csv文件时则会发生编码错误。例如:data.to_csv("test.csv", index=False, sep=',')readed_data = pd.read_csv("test.csv")data是一个DataFrame...
  • pythoncsv中文乱码问题

    万次阅读 多人点赞 2018-05-03 10:15:10
    这两天做了一个小测试是抓的天气信息本来想村数据库,后来觉得还是存csv比较好,使用方便,但是在使用的过程,发现存中文的时候会出现乱码的情况,于是就Google了一下,跟大家分享一下python3csv乱码的问题。...
  • #csv模块的DictReader函数中编码问题 处理日常的csv文件筛选问题中,通过以下的一段小代码,发现不同的编码格式下的程序有不同的错误,如下: #encoding=utf-8 import csv with ...
  • Python 解决csv存储中文乱码问题 第一次学习csv文件写入的时候,就遇到了中文乱码问题 原代码: 会发现生成的文件中文是乱码的: 解决方案: 首先学习一个新知识: utf-8 分为两种,一种是不带BOM的,编码方式为...
  • 一般来说,为了方便,使用python的时候都会使用csv模块去写数据到csv文件,但是写入中文的时候,经常会报错: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in ...
  • Python读取csv文件时编码报错问题

    千次阅读 2018-12-02 16:03:19
    感觉有必要来记下编码报错的问题了,每次遇到中文编码报错的问题,都得查找,实在麻烦。。 一,读取csv文件: train= pd.read_csv(train_path) 1. 如果报错OSError: Initializing from file failed,可尝试的...
  • Python将中文写入CSV文件编码问题

    千次阅读 2018-11-28 17:03:00
    目标:将中文数据存入到CSV格式的表格。 方法:在创建csv表格时,预先设置编码格式。如果设置为utf-8,则会出现如图所示乱码。 如果没有设置编码格式,运行Python则会报错: “UnicodeEncodeError: ‘gbk’ codec...
  • 很多朋友在使用Python中pandas读取csv文件时,出现编码格式问题,接下来通过本文给大家分享解决Python中pandas读取*.csv文件出现编码问题,需要的朋友可以参考下
  • 解决问题:前提了解:中文编码的规则 —— GB2312字符串在Python内部的表示是unicode编码,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码...
  • 一、pythoncsv写文件 1.整体写入 from pandas import DataFrame import numpy as np df1 = DataFrame(np.arange(12).reshape((3,4)),columns = ['a','b','c','d']) df1.to_csv('target.csv',encoding='utf-8') ...
  • python3csv乱码的问题: with open(filename, 'a', newline='', encoding='utf-8-sig') as f: # 中文需要设置成utf-8格式 open()增加encoding得设置即可(python2不支持) python2中文乱码问题: 用...
  • 最近用到了csv存入微信数据,并且从csv读出处理,由于微信昵称、签名等往往含有无法识别字符,导致编码问题严重。 因此分享一下心得,减少入坑时间。。 一、csv文件写入问题 encode('gbk', 'ignore').decode('...
  • 1.Python写入CSV乱码问题: 在写入CSV文件时,如果含有中文字符,再次读取该csv文件时则会发生编码错误。以下方式可以解决 data.to_csv("test.csv", index=False, encoding='utf-8') 2.Python写入CSV mode参数选择...
  • Python - CSV - Excel打开以UFT-8编码写入的CSV文件出现中文乱码 问题描述 以utf-8编码写入csv文件后,从Excel打开出现中文乱码 # 以utf-8编码打开csv文件 fp = open('doubanbook_top250.csv', 'w', newline='', ...
  • 解决问题:前提了解:中文编码的规则 —— GB2312字符串在Python内部的表示是unicode编码,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码...
  • https://www.cnblogs.com/aaronhoo/p/9676678.html
  • 如果CSV文件的中文是乱码,通常该CSV文件的编码格式是UTF8的. 为了中文显示正常,需要将CSV文件的编码格式转换为GBK格式. 代码: import pandas as pd #utf编码格式的csv文件的中文一般会是乱码,这时需要...
  • 最近刚开始学python,也同样经常被编码问题困扰。 一开始是编辑器,到终端,再到输入,再到保存的html文件,现在到csv文件。 各种各样的乱码问题,层出不穷,gbk utf-8 unicode byte都快弄烦了。 今天在用scrapy爬...
  • 本人在用python导出数据到csv的过程,发现python3.5写中文字符到csv报错, 错误信息UnicodeEncodeError: 'gbk' codec can't encode character '\u25ba' in position 494: illegal multibyte seque...
  • 8的方法:https://stackoverflow.com/questions/191359/how-to-convert-a-file-to-utf-8-in-python最近需要验证CSV文个,某个字段是否存在一些特定的中文,用python找开CSV进行遍历时总因为编码问题报错,...
  • 我用python2清洗数据,并存到csv文件 payloads.to_csv('data/payloads.csv') 用python3读取csv文件时,报一下错误: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 32: invalid...
  • 今天在使用pythoncsv库将数据写入csv文件时候,出现了中文乱码问题,解决方法是在写入文件前,先指定utf-8编码,如下: import csv import codecs if __name__ == "__main__": file_name = "data.csv...
  • 需求:按行解析读取csv文件存入关系型数据库——主要... 字符串在Python内部的表示是unicode编码,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编...
  • python写入csv文件中文乱码解决方案

    千次阅读 2019-07-21 23:58:39
    最近处理数据时需要将txt文件转化成csv格式,txt正常存储显示的中文在写入到csv文件时变成了乱码,文件的编码未能正确处理中文,需要在写入csv文件时指定编码。 解决方法 csvfile = file('data.csv', 'wb') # ...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 232
精华内容 92
关键字:

python中csv编码问题

python 订阅