利用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 输出一个两行字符的变量
Feb 05 Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
Python中模拟enum枚举类型的5种方法分享
Nov 22 Python
浅谈python中的正则表达式(re模块)
Oct 17 Python
详解python中的 is 操作符
Dec 26 Python
基于MTCNN/TensorFlow实现人脸检测
May 24 Python
Python闭包执行时值的传递方式实例分析
Jun 04 Python
TensorFlow实现自定义Op方式
Feb 04 Python
python 画条形图(柱状图)实例
Apr 24 Python
浅谈django 重载str 方法
May 19 Python
python 实时调取摄像头的示例代码
Nov 25 Python
Python 用户输入和while循环的操作
May 23 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 常用字符串函数总结
2008/03/15 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
原生js实现验证码功能
2017/03/16 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
Python实现提取文章摘要的方法
2015/04/21 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
超市营业员求职简历的自我评价
2013/10/17 职场文书
办公室驾驶员岗位职责
2013/11/15 职场文书
统计专业自荐书
2014/07/06 职场文书
群众路线表态发言材料
2014/10/17 职场文书
企业培训简报范文
2015/07/20 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
Golang表示枚举类型的详细讲解
2021/09/04 Golang