利用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 27 Python
Python中splitlines()方法的使用简介
May 20 Python
Python绘制七段数码管实例代码
Dec 20 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
numpy中以文本的方式存储以及读取数据方法
Jun 04 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
python对象销毁实例(垃圾回收)
Jan 16 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
pytorch中的inference使用实例
Feb 20 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 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
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
简单实现PHP留言板功能
2016/12/21 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
2020/08/20 PHP
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
简单的js表单验证函数
2013/10/28 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
js实现图片实时时钟
2020/01/15 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
python放大图片和画方格实现算法
2018/03/30 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
大学生军训感想
2014/02/16 职场文书
求职意向书
2014/07/29 职场文书
男性健康日的活动方案
2014/08/18 职场文书
创先争优活动承诺书
2014/08/30 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
军人离婚协议书样本
2014/10/21 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
python微信智能AI机器人实现多种支付方式
2022/04/12 Python
vue 给数组添加新对象并赋值
2022/04/20 Vue.js
Redis主从复制操作和配置详情
2022/09/23 Redis