利用python實現(xiàn)命令行有道詞典的方法示例
前言
由于一直用Linux系統(tǒng),對于詞典的支持特別不好,對于我這英語渣渣的人來說,當(dāng)看英文文檔就一直卡殼,之前用慣了有道詞典,感覺很不錯,雖然有網(wǎng)頁版的但是對于全站英文的網(wǎng)頁來說并不支持。索性自己實現(xiàn)一個,基于Python編寫的小工具實現(xiàn)有道詞典,思路也很簡單,直接調(diào)用有道的api,解析下返回的json就ok了。
只用到了python原生的庫,支持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('無法翻譯') except: print('翻譯出錯,請輸入合法單詞') 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ù),要是句子用引號括起來。
總結(jié)
以上就是這篇問文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
pytorch簡單實現(xiàn)神經(jīng)網(wǎng)絡(luò)功能
這篇文章主要介紹了pytorch簡單實現(xiàn)神經(jīng)網(wǎng)絡(luò),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09python簡單實現(xiàn)最大似然估計&scipy庫的使用詳解
這篇文章主要介紹了python簡單實現(xiàn)最大似然估計&scipy庫的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04python字典各式各樣操作從基礎(chǔ)到高級全面示例詳解
在Python中,字典(Dictionary)是一種強大而靈活的數(shù)據(jù)結(jié)構(gòu),它允許你存儲和檢索鍵值對,本文將深入探討Python中各式各樣的字典操作,包括基本操作、高級操作以及一些實用的技巧,通過全面的示例代碼,將展示如何充分發(fā)揮字典在Python編程中的優(yōu)勢2023-12-12Python如何利用struct進行二進制文件或數(shù)據(jù)流
這篇文章主要介紹了Python如何利用struct進行二進制文件或數(shù)據(jù)流問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01python-opencv中的cv2.inRange函數(shù)用法說明
這篇文章主要介紹了python-opencv中的cv2.inRange函數(shù)用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04