利用python实现命令行有道词典的方法示例


Posted in Python onJanuary 31, 2017

前言

由于一直用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.py

修改名称mv youdao.py youdao, 然后加上可执行权限chmod a+x youdao

拷贝到/usr/local/bincp youdao /usr/local/bin

使用的时候把要翻译的单词作为第一个命令行参数,要是句子用引号括起来。

利用python实现命令行有道词典的方法示例

总结

以上就是这篇问文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
在类Unix系统上开始Python3编程入门
Aug 20 Python
使用python读取txt文件的内容,并删除重复的行数方法
Apr 18 Python
django加载本地html的方法
May 27 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
Python中return self的用法详解
Jul 27 Python
python贪吃蛇游戏代码
Apr 18 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
Python Numpy库常见用法入门教程
Jan 16 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
python 多线程爬取壁纸网站的示例
Feb 20 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 #Python
python 编程之twisted详解及简单实例
Jan 28 #Python
详解python之简单主机批量管理工具
Jan 27 #Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 #Python
在Django同1个页面中的多表单处理详解
Jan 25 #Python
Python heapq使用详解及实例代码
Jan 25 #Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 #Python
You might like
php学习 函数 课件
2008/06/15 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
javascript import css实例代码
2008/07/18 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
输入框过滤非数字的js代码
2014/09/18 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
WebPack基础知识详解
2017/01/16 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
Python连接数据库学习之DB-API详解
2017/02/07 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
QML使用Python的函数过程解析
2019/09/26 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
怎样让char类型的东西转换成int类型
2013/12/09 面试题
自荐信要包含哪些内容
2013/11/06 职场文书
员工工作表扬信范文
2014/01/13 职场文书
骨干教师培训感言
2014/01/16 职场文书
采购意向书范本
2014/03/31 职场文书
学生期末评语大全
2014/04/30 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书