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开发之str.format()用法实例分析
Feb 22 Python
pytorch 数据集图片显示方法
Jul 26 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
Python函数的默认参数设计示例详解
Dec 01 Python
Python使用turtle库绘制小猪佩奇(实例代码)
Jan 16 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 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 正则学习实例
2008/07/30 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
python爬取网站数据保存使用的方法
2013/11/20 Python
使用python绘制人人网好友关系图示例
2014/04/01 Python
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
python安装pil库方法及代码
2019/06/25 Python
python如何实现单链表的反转
2020/02/10 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
仓库班组长岗位职责
2013/12/12 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
营销与策划实训报告
2014/11/05 职场文书
高三英语复习计划
2015/01/19 职场文书