利用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调用短信猫控件实现发短信功能实例
Jul 04 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
Sep 08 Python
python爬虫实例详解
Jun 19 Python
Flask-Mail用法实例分析
Jul 21 Python
Flask之flask-script模块使用
Jul 26 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
Django框架 信号调度原理解析
Sep 04 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
Python编程快速上手——强口令检测算法案例分析
Feb 29 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
基于python实现ROC曲线绘制广场解析
Jun 28 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
自动跳转中英文页面
2006/10/09 PHP
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
python在指定目录下查找gif文件的方法
2015/05/04 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
Python3数据库操作包pymysql的操作方法
2018/07/16 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
python实现机器学习之多元线性回归
2018/09/06 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
Python常用编译器原理及特点解析
2020/03/23 Python
Numpy 理解ndarray对象的示例代码
2020/04/03 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
餐饮部总监岗位职责范文
2014/02/13 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
Python合并多张图片成PDF
2021/06/09 Python
Java实现多线程聊天室
2021/06/26 Java/Android
MySQL 十大常用字符串函数详解
2021/06/30 MySQL