python實(shí)驗(yàn) 命令行使用有道翻譯

作為第一個(gè)不水的實(shí)驗(yàn)。

#!/usr/bin/env python? 防止操作系統(tǒng)用戶沒有將python裝在默認(rèn)路徑
# -*- coding:utf-8 -*-


import json
import sys

try:? #py3
?from urllib.parse import urlparse(),quote,unquote(解碼),urlencode(將鍵值對轉(zhuǎn)換為我們想要的格式)
?from urllib.request import urlopen
except: #py2
?from urllib import urlencode,quote,unquote
?from urllib import urlopen


def fetch(que_str=''):
?que_str=que_str.strip(" ' ").strip(' " ').strip()
?if not que_str:
??query_str='python'

?print(que_str)
?query={
??'q':que_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)? #json.dump()把一個(gè)python對象編碼轉(zhuǎn)換成json字符串

?try:
??if d.get('errorCode')==0:
???explains=d.get('basic').get('explains')
???for i in explains:
????print(i)


??else:
???print('無法翻譯')

?except:
??print('翻譯出錯(cuò),請輸入合法單詞')


def main():
?try:
??s=sys.argv[1]?? 模塊名之后的參數(shù)
?except IndexError:
??s='python'
?parse(fetch(s))


if __name__=='__main__':
?main()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1 前言 作為一名合格的數(shù)據(jù)分析師,其完整的技術(shù)知識體系必須貫穿數(shù)據(jù)獲取、數(shù)據(jù)存儲、數(shù)據(jù)提取、數(shù)據(jù)分析、數(shù)據(jù)挖掘、...
    whenif閱讀 18,107評論 45 523
  • 兩本不錯(cuò)的書: 《Python參考手冊》:對Python各個(gè)標(biāo)準(zhǔn)模塊,特性介紹的比較詳細(xì)。 《Python核心編程...
    靜熙老師哈哈哈閱讀 3,388評論 0 80
  • 基礎(chǔ)1.r''表示''內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義2.'''...'''表示多行內(nèi)容3. 布爾值:True、False(...
    neo已經(jīng)被使用閱讀 1,732評論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,992評論 19 139
  • 經(jīng)常會聽到有人說“我一點(diǎn)自信都沒有”,“我挺自信的”…你呢,是否對自己充滿信心?眾所周知,自信心是成功的首...
    A小蝸牛閱讀 219評論 2 0