命令行从dict.cn查单词(稍改动)

本文介绍了一个简化版的Python脚本,用于查询在线词典。作者通过使用raw_input替代sys.argv,解决了中文乱码问题,并实现了循环运行功能,提高了用户体验。同时,通过decode和replace方法处理了特殊字符,使得查询结果更加清晰易读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原出处:

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()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值