利用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中for循环详解
Jan 17 Python
python使用PyGame播放Midi和Mp3文件的方法
Apr 24 Python
Python 序列的方法总结
Oct 18 Python
python 编程之twisted详解及简单实例
Jan 28 Python
Ubuntu下创建虚拟独立的Python环境全过程
Feb 10 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
python实现树的深度优先遍历与广度优先遍历详解
Oct 26 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 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中路径问题的解决方案
2006/10/09 PHP
PHP 和 XML: 使用expat函数(三)
2006/10/09 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
CSS常用网站布局实例
2008/04/03 Javascript
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
Vue组件化开发思考
2018/02/02 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
解析Python中的__getitem__专有方法
2016/06/27 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
python输出带颜色字体实例方法
2019/09/01 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
求职信范文怎么写
2014/01/29 职场文书
运动会跳远广播稿
2014/02/04 职场文书
银行优秀员工事迹
2014/02/06 职场文书
作文评语怎么写
2014/12/25 职场文书
个人工作保证书
2015/02/28 职场文书
文言文辞职信
2015/02/28 职场文书
出纳岗位职责范本
2015/03/31 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书