利用python实现命令行有道词典的方法示例
作者:PegasusWang 发布时间:2021-03-24 06:32:16
标签:python,命令行,有道词典
前言
由于一直用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/bin
。 cp youdao /usr/local/bin
使用的时候把要翻译的单词作为第一个命令行参数,要是句子用引号括起来。
总结
0
投稿
猜你喜欢
- 两年前,我们开发了一套基于Flash的文件(主要是图片)上传RIA应用,提供给阿里巴巴的用户使用。如果你使用过Wordpress或flick
- 例子:http.Handle("/tmpfiles/", http.StripPrefix("/tmpfile
- “正则表达式”对象,我们就可以非常方便的对各种数据进行合法性的校验了。首先,让我们来了解一下究竟什么
- 网页制作中需要把握好很多原则和细节,今天我们来谈谈网页设计中的平衡、对比、连贯和留白。一、平衡如果你的页面是平衡的,当用户浏览这个页面的时候
- “你如何为成千上万的用户和页面提供CSS?” 这是Nicole Sullivan在她的在丹佛的Web Directions North 大会
- 背景之前是用的是typora来写的文章,最近typora最近开始收费了,所以就不想用了,于是找到了一个替代品MarkText,感觉跟typo
- 本文例举了ASP实例关于ASP与ACCESS链接的两种方式。<%dim dd,connstrdd="data.mdb&quo
- 从codered到nimda等,一大堆蠕虫把原来需要人工利用的漏洞都变成了程序自动利用了,大家还想去手工操作这些IIS漏洞么?让我们调整重心
- 表示文字链接最清楚的方式是“蓝色文字+下划线”,这是在浏览器发展过程中形成的。这个问题大家都说过很多次了,我也曾经说过。然而,这样的规范却总
- 最近在做一个电信的MIS系统,由于数据库的数据量庞大(最少也有500万),发现了一个sql server 长时间占有内存的现象。当你查询数据
- 概述从今天开始, 小白我将带领大家一起来补充一下 数据库的知识.MySQL 安装下载地址:https://dev.mysql.com/dow
- 本文实例为大家分享了python实现单机五子棋对战的具体代码,供大家参考,具体内容如下 引入pygame模块 # 1、引
- 原来的题目设想为界面视觉效果的统一性,但是“统一”这个词似乎有点敏感,怕触动萌点无数,而我也无意去设定一个什么什么的统一性来侃侃而谈,极为专
- QZONE平台的相册功能为保证加载速度一直以来以简洁的图片排列查看模式呈现相片,随着市场上各类相册产品推陈出新,用户越来越强烈的要求个人相册
- 在前后端分离是大趋势的背景下,前端获取数据都是通过调用后台的接口来获取数据微服务的应用越来越多。Django是Python进行web应用开发
- 接着上一篇,这里继续整合交易类。import datetime#交易类,后期需要整合公钥,私钥class Transaction: &nbs
- location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.hre
- 没什么说的,就是生成随机数而已!!相关文章推荐:8个asp生成随机字符的函数<% Function gen_key(digi
- 很多现代的浏览器在地址栏的右边有个搜索框,默认的安装有 Google 搜索等。如下图所示:其实这是 OpenSearch 的一个应用,只要编
- 真的很重要,栽了个跟头!!!(虽然以前好像知道。。。)print(True or False and False)print((True o