首頁 > 後端開發 > Python教學 > 利用python實作命令列有道詞典的方法範例

利用python實作命令列有道詞典的方法範例

高洛峰
發布: 2017-02-04 15:05:58
原創
1437 人瀏覽過

前言

由於一直用Linux系統,對於詞典的支持特別不好,對於我這英語渣渣的人來說,當看英文文檔就一直卡殼,之前用慣了有道詞典,感覺很不錯,雖然有網頁版的但是對於全站英文的網頁來說並不支援。索性自己實作一個,基於Python編寫的小工具實作有道字典,思路也很簡單,直接呼叫有道的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.pyo.可執行權限chmod a+x youdao

拷貝到/usr/local/bin。 cp youdao /usr/local/bin

使用的時候把要翻譯的單字當作第一個命令列參數,要是句子用引號括起來。

總結利用python實作命令列有道詞典的方法範例

以上就是這篇問文章的全部內容了,希望本文的內容對大家的學習或工作能帶來一定的幫助,如果有疑問大家可以留言交流。

更多利用python實現命令列有道詞典的方法範例相關文章請關注PHP中文網!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板