python核心编程第九章(9-11)

来源:互联网 发布:单片机 液晶屏与电机 编辑:程序博客网 时间:2024/05/23 17:17
def UrlBookMark():
     """9–11. Web 站点地址.a) 编写一个 URL 书签管理程序.
     使用基于文本的菜单,用户可以添加, 修改或者删除书签数据
     项. 书签数据项中包含站点的名称, URL 地址, 以及一行简
     单说明(可选). 另外提供检索功能,可以根据检索关键字在站
     点名称和 URL 两部分查找可能的匹配. 程序退出时把数据保
     存到一个磁盘文件中去;再次执行时候加载保存的数据."""
     prompt = '''
     URL bookmark:
     (A)dd
     (H)ttp
     (M)odify
     (D)elete
     (S)earch
     (Q)uit
     Enter your selection:'''
     function = {'a' : add,
                 'm' : modify,
                 'd' : delete,
                 's' : search,
                 'h' : addHttp}
     while True:
          slt = raw_input(prompt).strip()[0].lower()
          if 'q' == slt: return False
          if slt in 'amdsh':
               function[slt]()
               
import ConfigParser
def add():
     urlname = raw_input('Please enter URL name:').strip()
     url = raw_input('Please enter URL:').strip()
     cf = ConfigParser.ConfigParser()
     cf.read('Bookmark.ini')
     try:
         cf.add_section('Bookmark')
     except Exception,e: print e
     cf.set('Bookmark',urlname,url)
     fp = open('Bookmark.ini','w')
     cf.write(fp)
     fp.close()
import urllib2
import os
def addHttp():
     prompt = '''
     Whether creating bookmark directory?
     Yes? please enter dir name. Not? please
     press "Enter" key ...
     '''
     urlname = raw_input('Please enter URL name:').strip()
     url = raw_input('Please enter URL <http://>:').strip()
     if 0 == len(url) or 0 == len(urlname): return False
     try:
         lop = urllib2.urlopen(url)
     except Exception,e: print e
     ndir = raw_input(prompt)
     if 0 != len(ndir):
         os.mkdir(ndir)
         os.chdir(ndir)
     msg = lop.read()
     fp = open(urlname+'.html','w')
     fp.write(msg)
     fp.close()
def modify():
     string = 'Please enter url name:'
     name = raw_input(string).strip()
     cf = ConfigParser.ConfigParser()
     cf.read('Bookmark.ini')
     if cf.has_option('Bookmark',name):
         print '%s -- %s' %(name,cf.get('Bookmark',name))
         url = raw_input('Enter modified url:').strip()
         if 0 == len(url): return False
         cf.set('Bookmark',name,url)
         fp = open('Bookmark.ini','w')
         cf.write(fp)
         fp.close()
     else: print '%s not existed!'%name    
def delete():
     string = 'Please enter URL name you want to delete:'
     urlname = raw_input(string).strip()
     cf = ConfigParser.ConfigParser()
     cf.read('Bookmark.ini')
     if urlname in cf.options('Bookmark'):
         cf.remove_option('Bookmark',urlname)
         print 'Deleted successfully!'
     else: print 'URL bookmark is not existing.'
         
def search():
     flag = 0
     string = 'Please enter url name or link:'
     url = raw_input(string).strip()
     cf = ConfigParser.ConfigParser()
     cf.read('Bookmark.ini')
     for op in cf.options('Bookmark'):
         if url == op or url == cf.get('Bookmark',op):
             print 'Found: %s -- %s' %(op,cf.get('Bookmark',op))
             flag = 1
             break
     if 0 == flag:
        print 'Not found,%s not existed!'%url
0 0
原创粉丝点击