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实现多线程采集的2个代码例子
Jul 07 Python
python使用wxpython开发简单记事本的方法
May 20 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
Python异常的检测和处理方法
Oct 26 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
python统计字符串中字母出现次数代码实例
Mar 02 Python
详解Python IO编程
Jul 24 Python
python输出国际象棋棋盘的实例分享
Nov 26 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
python基于机器学习预测股票交易信号
May 25 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新手上路(十四)
2006/10/09 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
怎样声明子类
2013/07/02 面试题
若干个Java基础面试题
2015/05/19 面试题
儿科护士自我鉴定
2013/10/14 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
银行求职信模板
2015/03/20 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
信息技术国培研修日志
2015/11/13 职场文书
2016年教代会开幕词
2016/03/04 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
python缺失值填充方法示例代码
2022/12/24 Python