利用python實(shí)現(xiàn)命令行有道詞典的方法示例
前言
由于一直用Linux系統(tǒng),對(duì)于詞典的支持特別不好,對(duì)于我這英語(yǔ)渣渣的人來(lái)說(shuō),當(dāng)看英文文檔就一直卡殼,之前用慣了有道詞典,感覺(jué)很不錯(cuò),雖然有網(wǎng)頁(yè)版的但是對(duì)于全站英文的網(wǎng)頁(yè)來(lái)說(shuō)并不支持。索性自己實(shí)現(xiàn)一個(gè),基于Python編寫(xiě)的小工具實(shí)現(xiàn)有道詞典,思路也很簡(jiǎn)單,直接調(diào)用有道的api,解析下返回的json就ok了。
只用到了python原生的庫(kù),支持python2和python3.
示例代碼
#!/usr/bin/env python # -*- coding:utf-8 -*- # API key:273646050 # keyfrom:11pegasus11 import json import sys try: # py3 from urllib.parse import urlparse, quote, urlencode, unquote from urllib.request import urlopen except: # py2 from urllib import urlencode, quote, unquote from urllib2 import urlopen def fetch(query_str=''): query_str = query_str.strip("'").strip('"').strip() if not query_str: query_str = 'python' print(query_str) query = { 'q': query_str } url = 'http://fanyi.youdao.com/openapi.do?keyfrom=11pegasus11&key=273646050&type=data&doctype=json&version=1.1&' + urlencode(query) response = urlopen(url, timeout=3) html = response.read().decode('utf-8') return html def parse(html): d = json.loads(html) try: if d.get('errorCode') == 0: explains = d.get('basic').get('explains') for i in explains: print(i) else: print('無(wú)法翻譯') except: print('翻譯出錯(cuò),請(qǐng)輸入合法單詞') def main(): try: s = sys.argv[1] except IndexError: s = 'python' parse(fetch(s)) if __name__ == '__main__': main()
使用
將上面代碼粘貼后命名為youdao.py
修改名稱mv youdao.py youdao
, 然后加上可執(zhí)行權(quán)限chmod a+x youdao
拷貝到/usr/local/bin
。 cp youdao /usr/local/bin
使用的時(shí)候把要翻譯的單詞作為第一個(gè)命令行參數(shù),要是句子用引號(hào)括起來(lái)。
總結(jié)
以上就是這篇問(wèn)文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
pytorch簡(jiǎn)單實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)功能
這篇文章主要介紹了pytorch簡(jiǎn)單實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09python簡(jiǎn)單實(shí)現(xiàn)最大似然估計(jì)&scipy庫(kù)的使用詳解
這篇文章主要介紹了python簡(jiǎn)單實(shí)現(xiàn)最大似然估計(jì)&scipy庫(kù)的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04python字典各式各樣操作從基礎(chǔ)到高級(jí)全面示例詳解
在Python中,字典(Dictionary)是一種強(qiáng)大而靈活的數(shù)據(jù)結(jié)構(gòu),它允許你存儲(chǔ)和檢索鍵值對(duì),本文將深入探討Python中各式各樣的字典操作,包括基本操作、高級(jí)操作以及一些實(shí)用的技巧,通過(guò)全面的示例代碼,將展示如何充分發(fā)揮字典在Python編程中的優(yōu)勢(shì)2023-12-12Python實(shí)現(xiàn)自定義包的實(shí)例詳解
這篇文章主要介紹了實(shí)現(xiàn)自定義包的方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12pytest解讀一次請(qǐng)求多個(gè)fixtures及多次請(qǐng)求
這篇文章主要為大家介紹了一次請(qǐng)求多個(gè)fixtures,以及fixtures被多次請(qǐng)求的pytest官方解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python如何利用struct進(jìn)行二進(jìn)制文件或數(shù)據(jù)流
這篇文章主要介紹了Python如何利用struct進(jìn)行二進(jìn)制文件或數(shù)據(jù)流問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01python-opencv中的cv2.inRange函數(shù)用法說(shuō)明
這篇文章主要介紹了python-opencv中的cv2.inRange函數(shù)用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04