利用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的单元测试
Apr 28 Python
python抓取网页中图片并保存到本地
Dec 01 Python
python实现多人聊天室
Mar 31 Python
python提取包含关键字的整行数据方法
Dec 11 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
Jan 22 Python
Python之列表实现栈的工作功能
Jan 28 Python
python简单实现AES加密和解密
Mar 28 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
May 13 Python
哪些是python中web开发框架
Jun 17 Python
python安装读取grib库总结(推荐)
Jun 24 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
Python测试框架pytest高阶用法全面详解
Jun 01 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实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
python 实现目录复制的三种小结
2019/12/04 Python
python如何写出表白程序
2020/06/01 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
PHP如何设置和取得Cookie值
2015/06/30 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
小学生美德少年事迹材料
2014/08/24 职场文书
国庆节标语大全
2014/10/08 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
学校国庆节活动总结
2015/03/23 职场文书
为自己工作观后感
2015/06/11 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript
Python max函数中key的用法及原理解析
2021/06/26 Python
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏