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 08 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
Python实现调度算法代码详解
Dec 01 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
python yield关键词案例测试
Oct 15 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
python3.4中清屏的处理方法
Jul 06 Python
python 如何设置守护进程
Oct 29 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
php 强制下载文件实现代码
2013/10/28 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
2019/08/03 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
从setTimeout看js函数执行过程
2017/12/19 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
html5使用canvas画一条线
2014/12/15 HTML / CSS
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
班组长的岗位职责
2013/12/09 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
预防传染病方案
2014/06/14 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
工作感想范文
2015/08/07 职场文书
爱国教育主题班会
2015/08/14 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
python中%格式表达式实例用法
2021/06/18 Python
python识别围棋定位棋盘位置
2021/07/26 Python