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使用BeautifulSoup分析网页信息的方法
Apr 04 Python
利用Python学习RabbitMQ消息队列
Nov 30 Python
Python之ReportLab绘制条形码和二维码的实例
Jan 15 Python
Python3中关于cookie的创建与保存
Oct 21 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
详解Python中namedtuple的使用
Apr 27 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
Python把图片转化为pdf代码实例
Jul 28 Python
python模块内置属性概念及实例
Feb 18 Python
十个Python自动化常用操作,即拿即用
May 10 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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
python中sleep函数用法实例分析
2015/04/29 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
Python创建或生成列表的操作方法
2019/06/19 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
介绍下Java的输入输出流
2014/01/22 面试题
辩论赛主持词
2014/03/18 职场文书
情人节寄语大全
2014/04/11 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
党员活动总结
2015/02/04 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
golang json数组拼接的实例
2021/04/28 Golang
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis