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中的二进制位运算符
May 13 Python
在Python中操作字典之update()方法的使用
May 22 Python
Python Requests安装与简单运用
Apr 07 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
pycharm 将python文件打包为exe格式的方法
Jan 16 Python
Python数据类型之String字符串实例详解
May 08 Python
Python实现自定义读写分离代码实例
Nov 16 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
python数据类型可变不可变知识点总结
Mar 06 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
Pytorch环境搭建与基本语法
Jun 03 Python
带你学习Python如何实现回归树模型
Jul 16 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
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP缩略图生成和图片水印制作
2017/01/07 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
JS交换变量的方法
2015/01/21 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
小程序实现tab标签页
2020/11/16 Javascript
Python深入学习之对象的属性
2014/08/31 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
python自定义异常实例详解
2017/07/11 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
Python 日期与时间转换的方法
2020/08/01 Python
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
校园安全教育广播稿
2014/02/17 职场文书
出生公证书样本
2014/04/04 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
Vue如何清空对象
2022/03/03 Vue.js
服务器SVN搭建图文安装过程
2022/06/21 Servers