浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

用python写的测试网页和文件编码的小程序 - cloudaice - 博客园

用python写的测试网页和文件编码的小程序

这几天闲着呆在实验室,就自己学学python,不过写出来的程序都是很难看的,将就还是能用吧,在《可爱的python》中学习了cmd模块,于是就照锚画虎的自己琢磨着在其他一些小程序当中也使用上。这是一个测试网页编码或者文件编码的小程序,需要chaedet模块,顺便为了学习使用git,于是就把代码托管到github上了,地址为 git@github.com:cloudaice/codetest.git.

下面贴上代码

 1 # -*- coding:utf-8 -*-
 2 import cmd
 3 import urllib
 4 import sys
 5 import chardet
 6 from chardet.universaldetector import UniversalDetector
 7 class definecode(cmd.Cmd):
 8     def __init__(self):
 9         cmd.Cmd.__init__(self)
10         self.preaddr="http://"
11         self.prompt='(testcode)>'
12         self.intro='''
13         website 输入网址  输入要检测编码方式的网站的网址
14         exit or q    推出程序
15 '''
16     def help_exit(self):
17         print "推出程序"
18     def do_exit(self,line):
19         sys.exit()
20 
21     def help_website(self):
22         print "输入网站的网址"
23     def do_website(self,website):
24          if website=='':
25              website=raw_input("输入网址 ")
26          if not self.preaddr in website:
27              website=self.preaddr+website 
28          sock = urllib.urlopen(website)
29          detector = UniversalDetector()
30          for line in sock.readlines():
31              detector.feed(line)
32              if detector.done:
33                  break
34          detector.close()
35          sock.close()
36          result = detector.result
37          print "该网站的编码是 "+result['encoding']
38      
39     def help_files(self):
40          print "输入文件完整路径和文件名"
41     def do_files(self,filenames):
42          if filenames=='':
43              filenames=raw_input("输入文件完整路径和文件名")
44          f = open(filenames)
45          detector = UniversalDetector()
46          for line in f.readlines():
47              detector.feed(line)
48              if detector.done:
49                  break
50          detector.close()
51          f.close()
52          result = detector.result
53          print "该文件的编码是 "+ result['encoding']
54     
55     do_q = do_exit
56 
57 if __name__ == '__main__':
58     testcode = definecode()
59     testcode.cmdloop()
posted on 2012-03-18 09:15  lexus  阅读(236)  评论(0编辑  收藏  举报