日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

30行Python代碼自己寫一個(gè)英語翻譯工具

 東西二王 2019-05-26

經(jīng)常碰到不認(rèn)識(shí)的英文單詞就去有道字典網(wǎng)頁去查查看,每次的過程都是“打開有道網(wǎng)頁->輸入單詞->查看結(jié)果”,這個(gè)過程有點(diǎn)兒繁瑣。今天就來自己寫一個(gè)英語翻譯工具。

30行Python代碼自己寫一個(gè)英語翻譯工具

有道翻譯API

http://fanyi.youdao.com/openapi?path=data-mode

在這里簡單申請一個(gè)應(yīng)用即可。因?yàn)檫@個(gè)API有每小時(shí)1000次的使用限制,如果都使用我的key就會(huì)出現(xiàn)使用次數(shù)超限的情況。可以自己申請一個(gè)以滿足自己的需求。

API使用很簡單,傳幾個(gè)參數(shù)做一個(gè)http請求,返回json格式的結(jié)果。

Python實(shí)現(xiàn)

具體實(shí)現(xiàn)可以看代碼:https://github.com/veelion/tt

Python里面做http請求的庫很多,最流行和簡便的是requests,最開始我也選擇了該庫。寫完運(yùn)行的時(shí)候發(fā)現(xiàn),總是要遲鈍一會(huì)兒才會(huì)出結(jié)果。懷疑是requests庫內(nèi)部加載的東西太多,于是換urllib2的urlopen。

Python 2.7下叫urllib2,到了Python 3下面就沒有該包了,原來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庫就寫一個(gè)函數(shù)來做翻譯工作:

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)翻譯小工具的全部過程,很適合初學(xué)python的練手實(shí)現(xiàn)一下。

安裝和使用

上面介紹了翻譯小工具的實(shí)現(xiàn)過程,如果你只是想使用的話,我已把它發(fā)布到pypi上了,你只需使用pip命令安裝即可(linux安裝):

sudo pip install terminaltranslator

安裝程序會(huì)在/usr/local/bin/下面生成t和tt兩個(gè)簡潔命令工調(diào)用。

windowns用戶安裝:

pip install terminaltranslator

安裝程序會(huì)在python的根目錄Scripts里生成t.exe和tt.exe 。

使用如下:

30行Python代碼自己寫一個(gè)英語翻譯工具

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多