Python中動態(tài)檢測編碼chardet的使用教程
前言
在互聯(lián)網(wǎng)的世界里,每個頁面都使用了編碼,但是形形色色的編碼讓我們的代碼何以得知其棉麻格式呢?charset將很好的解決這個問題。
1. chardet
chardet是Python社區(qū)提供了一個類庫包,方便我們在代碼中動態(tài)檢測當(dāng)前頁面或者文件中的編碼格式信息。接口非常的簡單和易用。
Project主頁: https://github.com/chardet/chardet
本地下載地址:http://xiazai.jb51.net/201707/yuanma/chardet(jb51.net).rar
文檔主頁: http://chardet.readthedocs.io/en/latest/usage.html
2. 使用示例
Notice: 筆者使用的python 3.5 +
Case 1: 檢測特定頁面的編碼格式
import chardet import urllib.request TestData = urllib.request.urlopen('http://www.baidu.com/').read() print(chardet.detect(TestData))
輸出結(jié)果:
{'confidence': 0.99, 'encoding': 'utf-8'}
結(jié)果分析, 其準(zhǔn)確率99%的概率,編碼格式為utf-8
使用說明:detect()
為其關(guān)鍵方法
Case 2: 增量檢測編碼格式
import urllib.request from chardet.universaldetector import UniversalDetector usock = urllib.request.urlopen('http://yahoo.co.jp/') detector = UniversalDetector() for line in usock.readlines(): detector.feed(line) if detector.done: break detector.close() usock.close() print(detector.result)
輸出結(jié)果:
{'confidence': 0.99, 'encoding': 'utf-8'}
說明: 為了提高預(yù)測的準(zhǔn)確性,基于dector.feed()
來實現(xiàn)持續(xù)的信息輸入,在信息足夠充足之后結(jié)束信息輸入,給出相應(yīng)的預(yù)測和判斷。
如果需要復(fù)用detector方法,需要進行detector.reset()
進行重置,從而可以復(fù)用。
Case 3: 在安裝chardet之后,可以基于命令行來檢測文件編碼
% chardetect somefile someotherfile somefile: windows-1252 with confidence 0.5 someotherfile: ascii with confidence 1.0
在系統(tǒng)層面,可以直接基于命令行來進行文件編碼檢測,非常簡單易用。
3. 總結(jié)
chardet是非常易用和功能強大的Python包,相信大家在web世界中遨游之時,肯定會用上這個chardet的。 如有問題,歡迎大家反饋給我。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
基于Django框架利用Ajax實現(xiàn)點贊功能實例代碼
點贊這個功能是我們現(xiàn)在經(jīng)常會遇到的一個功能,下面這篇文章主要給大家介紹了關(guān)于基于Django框架利用Ajax實現(xiàn)點贊功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08利用Pandas實現(xiàn)對數(shù)據(jù)進行移動計算
這篇文章主要為大家詳細介紹了如何利用Pandas實現(xiàn)對數(shù)據(jù)進行移動計算,文中的示例代碼講解詳細,對我們了解Pandas有一定幫助,需要的可以參考一下2022-07-07