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列出目录下指定文件与子目录的方法
Jul 03 Python
python实现发送邮件功能
Jul 22 Python
python利用rsa库做公钥解密的方法教程
Dec 10 Python
python队列通信:rabbitMQ的使用(实例讲解)
Dec 22 Python
python中使用%与.format格式化文本方法解析
Dec 27 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
python 以16进制打印输出的方法
Jul 09 Python
django celery redis使用具体实践
Apr 08 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
Python list与NumPy array 区分详解
Nov 06 Python
python爬虫破解字体加密案例详解
Mar 02 Python
深入解析NumPy中的Broadcasting广播机制
May 30 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
PHP中Session的概念
2006/10/09 PHP
谈谈新手如何学习PHP
2006/12/23 PHP
获得Google PR值的PHP代码
2007/01/28 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
优秀中专生推荐信
2013/11/17 职场文书
花店创业计划书范文
2014/02/07 职场文书
如何写自我鉴定
2014/03/19 职场文书
公务员保密承诺书
2014/03/27 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
校本培训个人总结
2015/02/28 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android