利用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 20 Python
彻底理解Python list切片原理
Oct 27 Python
将python代码和注释分离的方法
Apr 21 Python
python3实现多线程聊天室
Dec 12 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
pytorch 输出中间层特征的实例
Aug 17 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
python打包多类型文件的操作方法
Sep 21 Python
python 如何区分return和yield
Sep 22 Python
Django 用户认证Auth组件的使用
Nov 30 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 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
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
PHP Session机制简介及用法
2014/08/19 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
python人民币小写转大写辅助工具
2018/06/20 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
关于保护环境的建议书
2014/08/26 职场文书
运动会加油稿20字
2014/11/15 职场文书
学前班学生评语
2014/12/29 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
求职简历自我评价2015
2015/03/10 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android