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数据结构之二叉树的统计与转换实例
Apr 29 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 Python
Python获取央视节目单的实现代码
Jul 25 Python
深入浅析python定时杀进程
Jun 06 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
python email smtplib模块发送邮件代码实例
Apr 26 Python
python+splinter自动刷新抢票功能
Sep 25 Python
Python中安装easy_install的方法
Nov 18 Python
对python中矩阵相加函数sum()的使用详解
Jan 28 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
May 15 Python
Python模块的制作方法实例分析
Dec 21 Python
python自动化发送邮件实例讲解
Jan 04 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
第十三节 对象串行化 [13]
2006/10/09 PHP
php 全文搜索和替换的实现代码
2008/07/29 PHP
php 中文和编码判断代码
2010/05/16 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
setTimeout时间设置为0详细解析
2018/03/13 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
python中redis的安装和使用
2016/12/04 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
Python实现求两个csv文件交集的方法
2017/09/06 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
GWebs公司笔试题
2012/05/04 面试题
保安员岗位职责
2013/11/17 职场文书
环境保护建议书
2014/08/26 职场文书
平面设计师岗位职责
2014/09/18 职场文书
2014年团工作总结
2014/11/27 职场文书
看上去很美观后感
2015/06/10 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
python基础之while循环语句的使用
2021/04/20 Python
MySQL约束超详解
2021/09/04 MySQL
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏