Pythonを使用してコマンドラインYoudao辞書を実装する方法の例

高洛峰
リリース: 2017-02-04 15:05:58
オリジナル
1397 人が閲覧しました

前書き

私は Linux システムを使っているので、英語が苦手な私にとって、以前は Youdao Dictionary を使っていたのですが、英語の文書を読むときにいつもつまづいていました。とても良い感じですが、Web バージョンもありますが、サイト全体の英語の Web ページには対応していません。 Youdao 辞書を実装するための Python で書かれた小さなツールを自分で実装するだけです。アイデアも非常に簡単です。Youdao の API を直接呼び出して、返された JSON を解析するだけです。

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 に変更し、追加します実行可能権限 chmod a+x youdao

を /usr/local/bin にコピーします。 cp youdao /usr/local/bin

使用する場合、翻訳対象の単語が最初のコマンドラインパラメータとして使用され、文は引用符で囲まれます。

Pythonを使用してコマンドラインYoudao辞書を実装する方法の例

概要

以上がこのQ&A記事の全内容です。この記事の内容が皆様の学習や仕事に少しでもお役に立てれば幸いです。ご質問がございましたら、メッセージを残してご連絡ください。

Python を使用してコマンドライン Youdao 辞書を実装する方法のその他の例については、PHP 中国語 Web サイトの関連記事に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート