打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python 插件杂谈 (1)

   Python做为一门应用广泛,粉丝众多的语言。吸引了无数的开发者为其添砖加瓦。笔者使用python逾一个月,就接触了许多 python插件,写篇文章,仅做记录.
    第一个介绍的是 chardet. chardet是为了探测python中字符集问题而开发的插件。

  1. >>> import urllib
  2. >>> urlread = lambda url: urllib.urlopen(url).read()
  3. >>> import chardet
  4. >>> chardet.detect(urlread("http://google.cn/"))
  5. {'encoding': 'GB2312', 'confidence': 0.99}
复制代码

  先介绍一下,urllib 是 python 中获取网页内容的插件。  使用urllib.open(url).read() 可以获取网页内容。 lambda 我想大家都了解了,是python基本语法,有点像java的匿名函数。
   言归正传,使用 chardet.detect() 可以 “猜测” 一段内存中字符段的编码。 为什么说 猜测,因为字符集与字符集之间并非一点都不同。而是有部分一样,有部分不一样。不管是 vim 还是 emacs ,几乎在查看文本编码的时候都是靠猜的。看python的输出,就可以看到,它觉得 99%的概率,这个字符集是 GB2312.
   下面看一段高级应用:importurllib

  1. from chardet.universaldetector import UniversalDetector
  2. usock = urllib.urlopen('http://yahoo.co.jp/')
  3. detector = UniversalDetector()
  4. for line in usock.readlines():
  5.     detector.feed(line)
  6.     if detector.done: break
  7. detector.close()
  8. usock.close()
  9. print detector.result
  10. {'encoding': 'EUC-JP', 'confidence': 0.99}   
复制代码



     应用背景是,如果需要大量地侦测,那么频繁调用 detect() 方法就会降低效率。那么这时候,可以使用全局的detect,即通过循环的方式不断地用 feed() 方法 加入字符串,达到高效率的最低要求,就会调用  detect() 函数检测 ,把UniversalDetector  对象的 done 置为 True.  这时候查看 result 属性,就可以知道结果啦!


   以上是我使用chardet的心得,希望对大家能有 帮助。我的叙述如果有问题,请大家看英语文档吧,具体地址在这里: chardet 文档
   最后奉上插件,

python2-chardet-2.0.1.rar

。 至于安装,就是解压后,执行文件夹里的 setup.py . 命令如下:
python  setup.py  install
   OK,终于写完一贴。你有没有得到帮助呢?如果有的话呢,请给我一个回复吧,给我个小小的鼓励,谢谢!

 

引用自 : 米趣网

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python 模块 chardet下载方法及介绍
大话 Python:python 基础巩固 -- python 有多少种编码方式,如何检测编码方式并完成转码
用chardet判断字符编码的方法
python3 导入chardet 出错
检查一段文字是何种语言以及编码
chardet库:轻松识别文件的编码格式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服