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 软件准备,下载地址,先看安装,再 ...
随机推荐
- 美国选举问题/完全背包/Knapsack
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Knap ...
- 解决iText2.0.8+freemark导出pdf不支持base64的解决办法
转换工具类 public class B64ImgReplacedElementFactory implements ReplacedElementFactory { /** * 实现createRe ...
- java集合之深入分析ArrayList
ArrayList特点: ArrayList方法实现: 扩容方法的实现: 源码: private void ensureCapacityInternal(int minCapacity) { //如果 ...
- c# 计算时间差---天数
---处理两个时间相差的天数 测试数据:三个时间 DateTime dt1 = Convert.ToDateTime("2017-03-17 09:49:55.667"); Dat ...
- 【模版】多项式乘法 FFT
https://www.luogu.org/problem/show?pid=3803 题目背景 这是一道模版题 题目描述 给定一个n次多项式F(x),和一个m次多项式G(x). 请求出F(x)和G( ...
- kafka命令总结
./kafka-console-consumer.sh --bootstrap-server IP:9092 --topic user-asset-change-v1 --partition 2 ...
- yum快速安装gitlab
安装gitlab前戏使用官方的源,还是比较慢的,gitlab官方提供了一个清华大学的源 新建 /etc/yum.repos.d/gitlab-ce.repo,内容为 源[gitlab-ce]name= ...
- Jenkins有用的插件
1. Multijob plugin: 多个任务同时运行 2. ssh slave plugin: 用于安装slave? Allows to launch over ssh, using a java ...
- 【Foreign】不等式 [数论]
不等式 Time Limit: 10 Sec Memory Limit: 128 MB Description 小z热衷于数学. 今天数学课的内容是解不等式:L<=S*x<=R .小z心 ...
- 【NOIP】普及组2011 表达式的值
[算法]动态规划+后缀表达式 [题解] 先把算式转为后缀表达式后进行DP 令f[s][0]表示使表达式答案为0的方案数 f[s][1]表示使表达式答案为1的方案数 (加法) f[a+b][1]=f[a ...