命令行從dict.cn查單詞(稍改動)

原出處:

http://www.oschina.net/code/snippet_70229_2366


不同的是作者原來使用sys.argv來獲取要查詢的單詞,還寫了幫助文檔,而我比較懶,還是喜歡用raw_input多一點,也不用導入sys模塊了;另外原來的代碼會有中文亂碼現象,以及例句中的關鍵詞有符號的讀取,我分別採用decode方法和replace方法解決了;再另外設置成while循環,這樣的話可以不用每次都手動輸入***.py來運行了。python寫什麼東西真是行雲流水一般順暢。

其實我果然還是懶啊…這種東西本來也可以用wxpython做一個簡陋的圖形界面來的好一點吧…


截圖:



代碼:

#!/usr/bin/env python
# -*- coding=gb2312 -*-

import urllib
import re

#是否輸出例句
eg=True

def main():
    word = raw_input('輸入單詞:')
    xmls = urllib.urlopen('http://dict.cn/ws.php?utf8=true&q=' + urllib.quote(word)).read()
    print
    print re.search(r'<def>(?P<test>.*?)</def>', xmls, re.M|re.I|re.S|re.U).group('test').decode('utf8')
    if eg:
        print
        origs=re.findall(r'<orig>(?P<orig>.*?)</orig>', xmls, re.M|re.I|re.S|re.U)
        trans=re.findall(r'<trans>(?P<trans>.*?)</trans>', xmls, re.M|re.I|re.S|re.U)
        for i in range(len(origs)):
            print "%d. %s"%(i+1,origs[i].decode('utf8').replace('<em>','').replace('''</em>''',''))
            print "%s  %s"%(' '*((i+1)/10+1),trans[i].decode('utf8').replace('<em>','').replace('''</em>''',''))
            print ''

if __name__ == '__main__':
    while True:
        main()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章