利用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实现股市信息下载的方法
Jun 15 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
python操作mysql代码总结
Jun 01 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
Python正则表达式急速入门(小结)
Dec 16 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
用python实现学生管理系统
Jul 24 Python
详解python3类型注释annotations实用案例
Jan 20 Python
浅谈Python numpy创建空数组的问题
May 25 Python
python实现简单聊天功能
Jul 07 Python
Python实现聚类K-means算法详解
Jul 15 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
php中Ctype函数用法详解
2014/12/09 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
javascript prototype 原型链
2009/03/12 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
Python中turtle作图示例
2017/11/15 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
浅析Python 序列化与反序列化
2020/08/05 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
HTML5有哪些新特征
2015/12/01 HTML / CSS
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
三方协议书
2015/01/27 职场文书
争先创优个人总结
2015/03/04 职场文书
2015年组织部工作总结
2015/04/03 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
Python实现视频中添加音频工具详解
2021/12/06 Python