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 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
python网络编程学习笔记(一)
Jun 09 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 Python
Django实现简单网页弹出警告代码
Nov 15 Python
Python字典底层实现原理详解
Dec 18 Python
Python print不能立即打印的解决方式
Feb 19 Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 Python
详解python中GPU版本的opencv常用方法介绍
Jul 24 Python
python在地图上画比例的实例详解
Nov 13 Python
如何理解及使用Python闭包
Jun 01 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
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
小程序自定义日历效果
2018/12/29 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
python-视频分帧&多帧合成视频实例
2019/12/10 Python
Python日志syslog使用原理详解
2020/02/18 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
销售经理工作职责范文
2013/12/03 职场文书
优秀演讲稿范文
2013/12/29 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
关于安全的广播稿
2014/10/23 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
python小型的音频操作库mp3Play
2022/04/24 Python