python实验 命令行使用有道翻译

作为第一个不水的实验。

#!/usr/bin/env python  防止操作系统用户没有将python装在默认路径
# -*- coding:utf-8 -*-


import json
import sys

try:  #py3
 from urllib.parse import urlparse(),quote,unquote(解码),urlencode(将键值对转换为我们想要的格式)
 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()把一个python对象编码转换成json字符串

 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()

你可能感兴趣的:(python实验 命令行使用有道翻译)