利用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 相关文章推荐
Python中的Numpy入门教程
Apr 26 Python
Python中的并发编程实例
Jul 07 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 Python
python实现基于SVM手写数字识别功能
May 27 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
python实现的Iou与Giou代码
Jan 18 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
May 22 Python
Python selenium爬取微信公众号文章代码详解
Aug 12 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 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之uniqid()函数用法
2014/11/03 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python 字符串中的字符倒转
2008/09/06 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python实现串口通信的示例代码
2020/02/10 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
大学毕业的自我鉴定
2013/10/08 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python