Python實(shí)現(xiàn)命令行英語(yǔ)翻譯工具?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)專注于永新網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供永新營(yíng)銷型網(wǎng)站建設(shè),永新網(wǎng)站制作、永新網(wǎng)頁(yè)設(shè)計(jì)、永新網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造永新網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供永新網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
經(jīng)常碰到不認(rèn)識(shí)的英文單詞就去有道字典網(wǎng)頁(yè)去查查看,每次的過(guò)程都是“打開有道網(wǎng)頁(yè)->輸入單詞->查看結(jié)果”,這個(gè)過(guò)程有點(diǎn)兒繁瑣。可是一直不厭其煩的這樣重復(fù)著,卻不想解決一下。。。直到在微博上面看到有個(gè)人利用有道翻譯API做了個(gè)命令行下面的小工具??墒撬怯胷uby寫的,對(duì)于Python控來(lái)說(shuō),這怎么可以呢,于是自己寫一個(gè)吧,很簡(jiǎn)單的。
在這里簡(jiǎn)單申請(qǐng)一個(gè)應(yīng)用即可。因?yàn)檫@個(gè)API有每小時(shí)1000次的使用限制,如果都使用我的key就會(huì)出現(xiàn)使用次數(shù)超限的情況。可以自己申請(qǐng)一個(gè)以滿足自己的需求。
API使用很簡(jiǎn)單,傳幾個(gè)參數(shù)做一個(gè)http請(qǐng)求,返回json格式的結(jié)果。
Python實(shí)現(xiàn)
具體實(shí)現(xiàn)可以看代碼:https://github.com/veelion/tt
Python里面做http請(qǐng)求的庫(kù)很多,最流行和簡(jiǎn)便的是requests,最開始我也選擇了該庫(kù)。寫完運(yùn)行的時(shí)候發(fā)現(xiàn),總是要遲鈍一會(huì)兒才會(huì)出結(jié)果。懷疑是requests庫(kù)內(nèi)部加載的東西太多,于是換urllib2的urlopen。
Python 2.7下叫urllib2,到了Python 3下面就沒(méi)有該包了,原來(lái)Python 3把它放到urllib.request里面去了,為了讓這個(gè)小工具同時(shí)在2和3下面運(yùn)行,于是有了這樣的代碼:
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庫(kù)就寫一個(gè)函數(shù)來(lái)做翻譯工作:
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) # 設(shè)置終端字體顏色 print("================================") print(u"%s -> %s" % (data['query'], ','.join(data['translation']))) if 'basic' in data: if 'uk-phonetic' in data['basic']: print(u"英式發(fā)音: %s" % data['basic']['uk-phonetic']) print(u"美式發(fā)音: %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) # 恢復(fù)終端字體顏色 except: traceback.print_exc()
最后,程序從命令行參數(shù)得到要被翻譯的詞,調(diào)用翻譯函數(shù)即可:
if __name__ == '__main__': from sys import argv if len(argv) > 1: q = argv[1] trans(q)
以上就是實(shí)現(xiàn)翻譯小工具的全部過(guò)程,很適合初學(xué)python的練手實(shí)現(xiàn)一下。
安裝和使用
上面介紹了翻譯小工具的實(shí)現(xiàn)過(guò)程,如果你只是想使用的話,我已把它發(fā)布到pypi上了,你只需使用pip命令安裝即可(linux安裝):
sudo pip install terminaltranslator
安裝程序會(huì)在/usr/local/bin/下面生成t和tt兩個(gè)簡(jiǎn)潔命令工調(diào)用。
windowns用戶安裝:
pip install terminaltranslator
安裝程序會(huì)在python的根目錄Scripts里生成t.exe和tt.exe 。
使用如下:
關(guān)于Python實(shí)現(xiàn)命令行英語(yǔ)翻譯工具問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。