本文主要是介绍命令行从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=Truedef main():word = raw_input('输入单词:')xmls = urllib.urlopen('http://dict.cn/ws.php?utf8=true&q=' + urllib.quote(word)).read()printprint re.search(r'<def>(?P<test>.*?)</def>', xmls, re.M|re.I|re.S|re.U).group('test').decode('utf8')if eg:printorigs=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()
这篇关于命令行从dict.cn查单词(稍改动)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!