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自动化测试工具Splinter简介和使用实例
May 13 Python
Python查看多台服务器进程的脚本分享
Jun 11 Python
python进阶教程之动态类型详解
Aug 30 Python
python在指定目录下查找gif文件的方法
May 04 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
Apr 26 Python
python使用PIL实现多张图片垂直合并
Jan 15 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
详解Python list和numpy array的存储和读取方法
Nov 06 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
基于Python制作一副扑克牌过程详解
Oct 19 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-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
jquery tools 系列 scrollable学习
2009/09/06 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
中止javascript执行的方法
2014/02/14 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
浅析vue数据绑定
2017/01/17 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
Python中多线程的创建及基本调用方法
2016/07/08 Python
python生成器与迭代器详解
2019/01/01 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
您的网上新华书店:文轩网
2016/08/24 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
继承权公证书
2014/04/09 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
党在我心中演讲稿
2014/09/02 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
认真学习保证书
2015/02/26 职场文书
评职称个人总结
2015/03/05 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
django中websocket的具体使用
2022/01/22 Python