解決編碼問題:UnicodeDecodeError: 'utf-8' codec can't decod
UnicodeDecodeError: 'utf-8' codec can't decod
有一次報(bào)錯(cuò)如下:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte
編碼問題:
f = open(txtPath,'r',encoding='utf-8')
改為:
f = open(txtPath,'r',encoding='gbk')即可
print(f.read())
又有一次讀取CSV文件時(shí)報(bào)錯(cuò):
import pandas as pd content = pd.read_csv('news.csv',encoding='utf-8') print(content.head())
報(bào)錯(cuò)如下:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte
這里我將編碼問題 utf-8 改為 gbk,還是報(bào)錯(cuò)。。。。報(bào)錯(cuò)如下:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 93: illegal multibyte sequence
最后當(dāng)我把程序改為:
import pandas as pd content = pd.read_csv('news.csv',encoding='gb18030') print(content.head())
即讀取成功:
這類問題都是文件編碼問題,至于文件到底是什么類型的編碼,誰都不知道,只能用最常用的編碼格式一個(gè)去試一下。這里我將文件編碼格式改為gb18030,是偶爾看到有這種格式試出來的。。。。不知道現(xiàn)在有沒有軟件能夠檢測文件是什么類型就好了。。
python的編碼聲明
通常,在python 文件,尤其是包含中文的python文件中,需要說明你的Python源程序文件使用的編碼;如果未聲明,程序默認(rèn)使用ascii碼來寫,此時(shí),書寫中文的話python解釋器一般會(huì)報(bào)錯(cuò)。
常見的編碼聲明:
# coding=utf-8 # coding:utf-8 # -*-coding=utf-8-*- # -*-coding:utf-8-*-
注意:
①coding后面使用:或=都可以。
②:或=與coding之間不能有空格,而:或=與編碼之間有沒有空格均可。
③編碼聲明一般放在python文件開頭(第一行或第二行)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python函數(shù)高級(jí)(命名空間、作用域、裝飾器)
這篇文章介紹了Python函數(shù)的高級(jí)用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05python使用paramiko執(zhí)行服務(wù)器腳本并拿到實(shí)時(shí)結(jié)果
這篇文章主要介紹了python使用paramiko執(zhí)行服務(wù)器腳本并拿到實(shí)時(shí)結(jié)果,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12解決Python訪問MySQL數(shù)據(jù)庫速度慢的問題
這篇文章主要介紹了解決Python訪問MySQL數(shù)據(jù)庫速度慢的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04python幾種常用功能實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了python幾種常用功能實(shí)現(xiàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python基于checksum計(jì)算文件是否相同的方法
這篇文章主要介紹了Python基于checksum計(jì)算文件是否相同的方法,涉及Python針對二進(jìn)制文件的讀取與判定技巧,需要的朋友可以參考下2015-07-07