python使用chardet判斷字符串編碼的方法
本文實(shí)例講述了python使用chardet判斷字符串編碼的方法。分享給大家供大家參考。具體分析如下:
最近利用python抓取一些網(wǎng)上的數(shù)據(jù),遇到了編碼的問(wèn)題。非常頭痛,總結(jié)一下用到的解決方案。
linux中vim下查看文件編碼的命令 set fileencoding
python中一個(gè)強(qiáng)力的編碼檢測(cè)包 chardet ,使用方法非常簡(jiǎn)單。linux下利用pip install chardet實(shí)現(xiàn)簡(jiǎn)單安裝
import chardet
f = open('file','r')
fencoding=chardet.detect(f.read())
print fencoding
fencoding輸出格式 {'confidence': 0.96630842899499614, 'encoding': 'GB2312'} ,只能判斷是否為某種編碼的概率。比較準(zhǔn)確的結(jié)果了。輸入?yún)?shù)為str類型。
了解python中str的編碼后可以利用decode和encode來(lái)實(shí)現(xiàn)編碼的轉(zhuǎn)換。
一般流程是str利用decode方法根據(jù)str的編碼將其解碼為unicode字符串類型,然后利用encode根據(jù)特定的編碼將unicode字符串類型轉(zhuǎn)換為特定的編碼。python中str和unicode屬于兩種不同的類型,如下。
一般情況下window默認(rèn)編碼gbk,linux默認(rèn)編碼utf8
python編程中 系統(tǒng)編碼,python編碼,文件編碼 的概念。
系統(tǒng)編碼:默認(rèn)寫(xiě)源碼的編輯器的編碼方式。它代表源碼文件內(nèi)的所有內(nèi)容都是根據(jù)詞方式編碼成二進(jìn)制碼流。存入到磁盤(pán)中的。linux下通過(guò)locale命令查看。
python編碼:指python內(nèi)設(shè)置的解碼方式。如果不設(shè)定的話,python默認(rèn)的是ascii解碼方式。如果python源代碼文件中不出現(xiàn)中文的話,這個(gè)地方怎么設(shè)定應(yīng)該不會(huì)問(wèn)題。
設(shè)定方法:在源碼文件開(kāi)頭(一定是第一行):#-*-coding:UTF-8-*-,源碼文件的設(shè)置解碼方式是UTF-8 或者
import sys
reload(sys)
sys.setdefaultencoding('UTF-8')
文件編碼:文本的編碼方式,linux下vim利用set fileencoding查看。
一般情況下輸出亂碼的原因就是 沒(méi)有按照系統(tǒng)解碼的方式進(jìn)行編碼。
比如print s, s類型為str,linux系統(tǒng)下系統(tǒng)默認(rèn)編碼為utf8編碼,s在輸出前就應(yīng)該編碼為utf8。如果s為gbk編碼就應(yīng)該這樣輸出。print s.decode('gbk').encode('utf8')才能輸出中文。
window下面情況相同,window默認(rèn)編碼為gbk編碼,所以s輸出前必須編碼為gbk。
python處理中一般處理unicode類型。這樣輸出前直接編碼即可。
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
- 深入探索Python解碼神器Chardet自動(dòng)檢測(cè)文本編碼
- Python處理文件的方法(mimetypes和chardet)
- Python chardet庫(kù)識(shí)別編碼原理解析
- Python3 chardet模塊查看編碼格式的例子
- python中判斷文件編碼的chardet(實(shí)例講解)
- Python中動(dòng)態(tài)檢測(cè)編碼chardet的使用教程
- python判斷字符串編碼的簡(jiǎn)單實(shí)現(xiàn)方法(使用chardet)
- Python使用chardet判斷字符編碼
- 使用python的chardet庫(kù)獲得文件編碼并修改編碼
- python基于chardet識(shí)別字符編碼的方法
相關(guān)文章
python讀取文件由于編碼問(wèn)題失敗匯總以及解決辦法
這篇文章主要給大家介紹了關(guān)于python讀取文件由于編碼問(wèn)題失敗匯總以及解決辦法的相關(guān)資料,文件編碼錯(cuò)誤指的是在Python讀取文件的過(guò)程中出現(xiàn)的編碼不匹配的問(wèn)題,需要的朋友可以參考下2023-10-10
python實(shí)現(xiàn)ssh及sftp功能(實(shí)例代碼)
這篇文章主要介紹了python實(shí)現(xiàn)ssh及sftp功能 ,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
基于Python實(shí)現(xiàn)ComicReaper漫畫(huà)自動(dòng)爬取腳本過(guò)程解析
這篇文章主要介紹了基于Python實(shí)現(xiàn)ComicReaper漫畫(huà)自動(dòng)爬取腳本過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
基于python代碼實(shí)現(xiàn)簡(jiǎn)易濾除數(shù)字的方法
今天小編就為大家分享一篇基于python代碼實(shí)現(xiàn)簡(jiǎn)易濾除數(shù)字的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Pytorch中torch.cat()函數(shù)舉例解析
一般torch.cat()是為了把多個(gè)tensor進(jìn)行拼接而存在的,下面這篇文章主要給大家介紹了關(guān)于Pytorch中torch.cat()函數(shù)舉例解析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
python爬蟲(chóng)調(diào)度器用法及實(shí)例代碼
在本篇文章里小編給各位整理了關(guān)于python爬蟲(chóng)調(diào)度器用法及實(shí)例代碼,需要的朋友們可以參考學(xué)習(xí)下。2020-11-11
python神經(jīng)網(wǎng)絡(luò)tensorflow利用訓(xùn)練好的模型進(jìn)行預(yù)測(cè)
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)tensorflow利用訓(xùn)練好的模型進(jìn)行預(yù)測(cè),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

