温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python实现命令行英语翻译工具

发布时间:2020-09-24 11:12:57 来源:亿速云 阅读:189 作者:Leah 栏目:编程语言

Python实现命令行英语翻译工具?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

经常碰到不认识的英文单词就去有道字典网页去查查看,每次的过程都是“打开有道网页->输入单词->查看结果”,这个过程有点儿繁琐。可是一直不厌其烦的这样重复着,却不想解决一下。。。直到在微博上面看到有个人利用有道翻译API做了个命令行下面的小工具。可是他是用ruby写的,对于Python控来说,这怎么可以呢,于是自己写一个吧,很简单的。

在这里简单申请一个应用即可。因为这个API有每小时1000次的使用限制,如果都使用我的key就会出现使用次数超限的情况。可以自己申请一个以满足自己的需求。

API使用很简单,传几个参数做一个http请求,返回json格式的结果。

Python实现

具体实现可以看代码:https://github.com/veelion/tt

Python里面做http请求的库很多,最流行和简便的是requests,最开始我也选择了该库。写完运行的时候发现,总是要迟钝一会儿才会出结果。怀疑是requests库内部加载的东西太多,于是换urllib2的urlopen。

Python 2.7下叫urllib2,到了Python 3下面就没有该包了,原来Python 3把它放到urllib.request里面去了,为了让这个小工具同时在2和3下面运行,于是有了这样的代码:

try:
    # For Python 3
    from urllib.request import urlopen
    from urllib.request import quote
except ImportError:
    # For Python 2
    from urllib2 import urlopen
    from urllib import quote

选好http库就写一个函数来做翻译工作:

def trans(q):
    print('translating...')
    url = ('http://fanyi.youdao.com/openapi.do?'
           'keyfrom=%s&key=%s&type=data&'
           'doctype=json&version=1.1&'
           'q=%s') % (YOUDAO_KEYFROM, YOUDAO_KEY, quote(q))
    try:
        r = urlopen(url)
        html = r.read()
        data = json.loads(html)
        if data['errorCode'] != 0:
            print(html)
            return
        print(BRO)  # 设置终端字体颜色
        print("================================")
        print(u"%s -> %s" % (data['query'], ','.join(data['translation'])))
        if 'basic' in data:
            if 'uk-phonetic' in data['basic']:
                print(u"英式发音: %s" % data['basic']['uk-phonetic'])
                print(u"美式发音: %s" % data['basic']['us-phonetic'])
            for e in data['basic']['explains']:
                print(u"%s" % e)
        if 'web' in data:
            print("")
            for e in data['web']:
                print(u"%s -> %s" % (e['key'], ','.join(e['value'])))
        print("================================")
        print(NOR)  # 恢复终端字体颜色
    except:
        traceback.print_exc()

最后,程序从命令行参数得到要被翻译的词,调用翻译函数即可:

if __name__ == '__main__':
    from sys import argv
    if len(argv) > 1:
        q = argv[1]
        trans(q)

以上就是实现翻译小工具的全部过程,很适合初学python的练手实现一下。

安装和使用

上面介绍了翻译小工具的实现过程,如果你只是想使用的话,我已把它发布到pypi上了,你只需使用pip命令安装即可(linux安装):

sudo pip install terminaltranslator

安装程序会在/usr/local/bin/下面生成t和tt两个简洁命令工调用。

windowns用户安装:

pip install terminaltranslator

安装程序会在python的根目录Scripts里生成t.exe和tt.exe 。

使用如下:

Python实现命令行英语翻译工具

Python实现命令行英语翻译工具

关于Python实现命令行英语翻译工具问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI