Python中动态检测编码chardet的使用教程


Posted in Python onJuly 06, 2017

前言

在互联网的世界里,每个页面都使用了编码,但是形形色色的编码让我们的代码何以得知其棉麻格式呢?charset将很好的解决这个问题。

1. chardet

chardet是Python社区提供了一个类库包,方便我们在代码中动态检测当前页面或者文件中的编码格式信息。接口非常的简单和易用。

Project主页: https://github.com/chardet/chardet

本地下载地址:http://xiazai.3water.com/201707/yuanma/chardet(3water.com).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))

输出结果:

{'confidence': 0.99, 'encoding': 'utf-8'}

结果分析, 其准确率99%的概率,编码格式为utf-8

使用说明:detect()为其关键方法

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)

输出结果:

{'confidence': 0.99, 'encoding': 'utf-8'}

说明: 为了提高预测的准确性,基于dector.feed()来实现持续的信息输入,在信息足够充足之后结束信息输入,给出相应的预测和判断。

如果需要复用detector方法,需要进行detector.reset()进行重置,从而可以复用。

Case 3: 在安装chardet之后,可以基于命令行来检测文件编码

% chardetect somefile someotherfile
somefile: windows-1252 with confidence 0.5
someotherfile: ascii with confidence 1.0

在系统层面,可以直接基于命令行来进行文件编码检测,非常简单易用。

3. 总结

chardet是非常易用和功能强大的Python包,相信大家在web世界中遨游之时,肯定会用上这个chardet的。 如有问题,欢迎大家反馈给我。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
解析Python编程中的包结构
Oct 25 Python
Python注释详解
Jun 01 Python
Python连接数据库学习之DB-API详解
Feb 07 Python
对python生成业务报表的实例详解
Feb 03 Python
python实现二维数组的对角线遍历
Mar 02 Python
python中update的基本使用方法详解
Jul 17 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 24 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
Jul 06 #Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 #Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 #Python
Python如何快速实现分布式任务
Jul 06 #Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 #Python
Python标准库sched模块使用指南
Jul 06 #Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 #Python
You might like
星际争霸任务指南——人族
2020/03/04 星际争霸
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
javascript实现移动端轮播图
2020/12/09 Javascript
python选择排序算法的实现代码
2013/11/21 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
Python中logger日志模块详解
2020/08/04 Python
python如何调用百度识图api
2020/09/29 Python
python 统计list中各个元素出现的次数的几种方法
2021/02/20 Python
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
创先争优公开承诺书
2014/08/30 职场文书
高考升学宴主持词
2019/06/21 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang