Python 插件杂谈 (1) ---- chardet
Python做为一门应用广泛,粉丝众多的语言。吸引了无数的开发者为其添砖加瓦。笔者使用python逾一个月,就接触了许多 python插件,写篇文章,仅做记录.
第一个介绍的是 chardet. chardet是为了探测python中字符集问题而开发的插件。
- >>> import urllib
- >>> urlread = lambda url: urllib.urlopen(url).read()
- >>> import chardet
- >>> chardet.detect(urlread("http://google.cn/"))
- {'encoding': 'GB2312', 'confidence': 0.99}
复制代码
先介绍一下,urllib 是 python 中获取网页内容的插件。 使用urllib.open(url).read() 可以获取网页内容。 lambda 我想大家都了解了,是python基本语法,有点像java的匿名函数。
言归正传,使用 chardet.detect()
可以 “猜测” 一段内存中字符段的编码。 为什么说 猜测, 因为字符集与字符集之间并非一点都不同。而是有部分一样,有部分不一样。不管是 vim
还是 emacs ,几乎在查看文本编码的时候都是靠猜的。 看python的输出,就可以看到,它觉得 99%的概率,这个字符集是 GB2312.
下面看一段高级应用:
- import urllib
- from chardet.universaldetector import UniversalDetector
- usock = urllib.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
- {'encoding': 'EUC-JP', 'confidence': 0.99}
复制代码
应用背景是,如果需要大量地侦测,那么频繁调用 detect() 方法就会降低效率。那么这时候,可以使用全局的detect,
即通过循环的方式不断地用 feed() 方法 加入字符串,达到高效率的最低要求,就会调用 detect() 函数检测 ,把 UniversalDetector 对象的 done 置为 True. 这时候查看 result 属性,就可以知道结果啦!
以上是我使用chardet的心得,希望对大家能有 帮助。我的叙述如果有问题,请大家看英语文档吧,具体地址在这里: chardet 文档
最后奉上插件, 。 至于安装,就是解压后,执行文件夹里的 setup.py . 命令如下:
python setup.py install
OK,终于写完一贴。你有没有得到帮助呢?如果有的话呢,请给我一个回复吧,给我个小小的鼓励,谢谢!
Python 插件杂谈 (1) ---- chardet的更多相关文章
- 使用pip安装python插件的时候出现Microsoft Visual C++ 9.0缺失错误
使用pip安装python插件的时候出现Microsoft Visual C++ 9.0缺失错误 使用pip安装python插件的时候出现Microsoft Visual C++ 9.0缺失错误 : ...
- mongo db安装和php,python插件安装
安装mongodb 1.下载,解压mongodb(下载解压目录为/opt) 在/opt目录下执行命令 wget fastdl.mongodb.org/linux/mongodb-linux-x86_6 ...
- intellij安装Scala及Python插件
1.下载intellij及Scala和Python插件 intellij的下载地址:https://www.jetbrains.com/idea/download/#section=windows S ...
- 推荐使用国内的豆瓣源安装Python插件
以前都是用pip安装Python插件的,直到今天 pip的原理其实是从Python的官方源pypi.python.org/pypi下载到本地,然后解包安装 但是有的时候,这个操作会非常慢,国内可以通过 ...
- VSCode好用的Python插件及配置
MS Python插件. 这是微软官方的Python插件,已经自带很多功能.下面是插件功能描述,其中部分内容我做了翻译. a) Linting (Prospector, Pylint, ...
- 解决IDEA安装Python插件,下载失败的方法
一.问题 通过file-->settings-->Plugins 安装python时,会提示下载失败.可以采用以下方法解决. 二.解决办法 1.在help/about中查看IDEA版本,作 ...
- VSCode+python插件
1.打开VSCode 点击箭头所指地方 然后输入python 安装截图所示的插件 2.进行python路径设置 点击文件--首选项--设置 点击... 会弹出一个下拉框 选择打开setting.jso ...
- idea集成python插件
idea集成python插件 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在继承安装Python插件时,请确认你是否安装Python解释器(Python官网:https://ww ...
- Eclipse环境安装Python插件PyDev
转载自:http://blog.csdn.net/typa01_kk/article/details/49251247 clipse环境安装Python插件PyDev 软件准备,下载地址,先看安装,再 ...
随机推荐
- (转)python编码问题
时不时总是会碰到令人头疼的编码问题,这里推荐一篇决定好文,需反复诵读之: http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html . . ...
- elasticsearch 创建索引,以及检索一条数据
elasticsearch的重要概念 我们可以把elasticsearch当做数据库来理解: index:索引库名称,相当于关系型数据库中的表名,一个elasticsearch集群中可以有多个索引库. ...
- redis的安装和常用命令
一.redis的安装 1.windows安装redis 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这 ...
- 「6月雅礼集训 2017 Day11」jump
[题目大意] 有$n$个位置,每个位置有一个数$x_i$,代表从$i$经过1步可以到达的点在$[\max(1, i-x_i), \min(i+x_i, n)]$中. 定义$(i,j)$的距离表示从$i ...
- 51nod 1766 树上的最远点对——线段树
n个点被n-1条边连接成了一颗树,给出a~b和c~d两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出max{dis(i,j) |a<=i<=b,c<=j& ...
- 逃生(HDU4857 + 反向拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857 题面是中文题面,就不解释题意了,自己点击链接去看下啦~这题排序有两个条件,一个是按给定的那个序列 ...
- TOYS(计算几何基础+点与直线的位置关系)
题目链接:http://poj.org/problem?id=2318 题面: TOYS Time Limit: 2000MS Memory Limit: 65536K Total Submiss ...
- js 实时显示字数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 统计Visual Studio项目的代码行数
原文转自 https://blog.csdn.net/tyc129/article/details/74279806 使用Visual Studio 自带的在文件中查找功能中的正则表达式实现代码统计功 ...
- 2.C 基础
C 基础 原文地址:http://rypress.com/tutorials/objective-c/c-basics OC 可以说是C语言的一个超集,这样你可以无缝的和C语言结合编程也就是你可以这两 ...