利用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获取android设备的GPS信息脚本分享
Mar 06 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
python实现kNN算法
Dec 20 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
将python文件打包成EXE应用程序的方法
May 22 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
用python写测试数据文件过程解析
Sep 25 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
python实现快速文件格式批量转换的方法
Oct 16 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 Python
用Python 执行cmd命令
Dec 18 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插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
不要用强制方法杀掉python线程
2017/02/26 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
就业推荐表自我鉴定
2013/10/29 职场文书
师范大学毕业自我鉴定
2013/11/21 职场文书
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
最美家庭活动方案
2014/08/31 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
商务考察邀请函模板
2015/02/02 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android