利用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 os模块介绍
Nov 30 Python
使用Python操作Elasticsearch数据索引的教程
Apr 08 Python
详解python之配置日志的几种方式
May 22 Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
pycharm执行python时,填写参数的方法
Oct 29 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
python 追踪except信息方式
Apr 25 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
Django显示可视化图表的实践
May 10 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实现多服务器共享SESSION数据的方法
2007/03/16 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
js一组验证函数
2008/12/20 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
Python 正则表达式(转义问题)
2014/12/15 Python
python创建临时文件夹的方法
2015/07/06 Python
浅谈五大Python Web框架
2017/03/20 Python
python对html过滤处理的方法
2018/10/21 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
GWebs公司笔试题
2012/05/04 面试题
技校生自我鉴定范文
2013/09/26 职场文书
领导视察欢迎词
2014/01/15 职场文书
高中毕业自我评价
2014/02/08 职场文书
企业优秀员工事迹材料
2014/05/28 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
召开会议通知范文
2015/04/15 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
JavaScript原型链详解
2021/11/07 Javascript
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL