利用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 实现文件的全备份和差异备份详解
Dec 27 Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
Python3 queue队列模块详细介绍
Jan 05 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
python requests指定出口ip的例子
Jul 25 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
关于numpy中eye和identity的区别详解
Nov 29 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
Python drop方法删除列之inplace参数实例
Jun 27 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
域名和cookie问题(域名后缀)
2012/10/10 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
python循环监控远程端口的方法
2015/03/14 Python
python制作一个桌面便签软件
2015/08/09 Python
Python画图学习入门教程
2016/07/01 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
python3实现猜数字游戏
2020/12/07 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
python交互模式基础知识点学习
2020/06/18 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
竞争上岗演讲稿
2014/01/05 职场文书
大一军训感言
2014/01/09 职场文书
留学推荐信怎么写
2014/01/25 职场文书
经典公益广告词
2014/03/13 职场文书
篝火晚会策划方案
2014/05/16 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python
SQL Server使用导出向导功能
2022/04/08 SQL Server
Elasticsearch 数据类型及管理
2022/04/19 Python