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统计一个文本中重复行数的方法
Nov 19 Python
在Python中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
深入探究Django中的Session与Cookie
Jul 30 Python
python中logging包的使用总结
Feb 28 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
解决pycharm 误删掉项目文件的处理方法
Oct 22 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
python实现抠图给证件照换背景源码
Aug 20 Python
python多任务之协程的使用详解
Aug 26 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
golang/python实现归并排序实例代码
Aug 30 Python
Python中的 enumerate和zip详情
May 30 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自带的进位制之间的转换函数
2013/06/08 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
销售主管的自我评价分享
2014/01/03 职场文书
运动会入场解说词300字
2014/01/25 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
中文专业求职信
2014/06/20 职场文书
计划生育证明格式范本
2014/09/12 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
小学教师见习总结
2015/06/23 职场文书
会议主持词结束语
2015/07/03 职场文书
驻村工作简报
2015/07/20 职场文书
办公室管理规章制度
2015/08/04 职场文书
Python基础详解之描述符
2021/04/28 Python
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技