linux下终端使用有道翻译

linux下面使用终端,有的时候需要查找一个单词,都需要打开浏览器通过网页来查找单词,这样效率会会非常的繁琐,并且也会降低工作效率。

之前刚开始看python文档的时候,看过别人说的一个用python写的在终端下查单词的脚本,当时没记录下来,后来也没找到。

今天本来是想解决我网站的显示的问题,但是想到这个不做了就感觉哪里不对,一股强迫症的感觉。。

自己用python写了一个脚本,用的是有道翻译的api,感谢有道。

使用方法为,python youdao.py  word  ,单词 word为你要查询的单词。

下面贴代码:

import sys
from urllib.request import urlopen
from html.parser import HTMLParser

def get_result(word):
	url = 'http://fanyi.youdao.com/openapi.do?keyfrom=majunzhe&key=27448872&type=data&doctype=xml&version=1.1&q='
	query_url = url + word
	result = urlopen(query_url).read().decode('utf-8')
	return result

class WordResultParser(HTMLParser):
	bHandled = False
	bExplain = False
	data_meaning = ''
	output = ''
	tags = ('phonetic', 'ex', 'key')
	def parse_data(self, data):
		beg_pos = data.rfind('[') + 1
		end_pos = data.find(']', beg_pos, len(data))
		if end_pos == -1:
			end_pos = len(data)
		#print(beg_pos)
		#print(end_pos)
		#print(data)
		self.data_meaning = data[beg_pos:end_pos]

	def handle_starttag(self, tag, attrs):
		if 'basic' == tag:
			self.output += '基本释义:\n'
		elif 'web' == tag:
			self.output += '网络释义:\n'
		elif 'explain' == tag:
			self.bExplain = True
		if tag in self.tags:
			self.bHandled = True

	def handle_endtag(self, tag):
		if 'explain' == tag:
			self.output += '\n'
			self.bExplain = False

	def unknown_decl(self, data):
		if self.bHandled != True:
			return
		self.parse_data(data)
		endstr = '\n'
		if self.bExplain:
			endstr = ' '
		self.output += self.data_meaning + endstr
		self.bHandled = False

def print_results():
	for word in sys.argv[1:]:
		#print('-------------------------------------------------------------')
		# get the query result
		word_result = get_result(word)
		#print(word_result)
		word_parser = WordResultParser()
		word_parser.feed(word_result)
		print(word_parser.output[:-2])
		#print('-------------------------------------------------------------')
print_results()

大致步骤是这样的:

1 首先明白有道翻译api的使用方法,具体步骤可以在官网上面查看,但是使用api之前要申请一个 key。

2 通过python的库来打开url,并通过解析 返回的数据得到查询结果,我使用的是 python 库 HTMLParser来解析数据的。

3 在linux下再进行简单的配置下,就可以直接在像使用其他的命令行来使用这个脚本了。

这个脚本我设置了一次能查询多个单词的功能。

下面是在linux下面的配置步骤:

1 首先把上面的python代码存成一个名为 youdao.py的文件,我把这个文件放置在 ~/Documents 文件夹下

2 再在 ~/  文件夹下创建一个 脚本 , 文件命名为 youdao

#!/bin/bash
while [ $# -ne 0 ]
do
	python Documents/youdao.py $1
	shift
done

其中的while语句是用来一次查询多个单词使用的

3 当完成了上述的步骤之后,就可以./youdao  xxx, 这样的查询单词了。

但是我们这样用着肯定不方便的。那就将这个脚本链接到/usr/bin 下。

sudo ln -s ~/youdao /usr/bin/youdao

4 完成。

下面就可以尽情在命令行下面查询单词了,没有添加查询句子的功能,觉得没啥用,一般都是查一个单词的,一次查多个单词的功能还是为了以防万一。

哈哈

个人网站为:www.majunzhe.com

linux下终端使用有道翻译,布布扣,bubuko.com

时间: 2024-11-21 05:25:20

linux下终端使用有道翻译的相关文章

linux下终端11选5平台出租常用命令和vi命令修改文件及保存的使用方法

首先11选5平台出租haozbbs.comQ1446595067介绍一下Ubuntu下各个目录的一般作用: /这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入"/home",你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录./root系统管理员(root user)的目录.至于系统管理员的权限有多大我这里就不在废话了.因此,请小心使用root帐号./boot系统启动文件,所有与系统启动有关的文件都保存在这里 . /bin 这

[转]linux下终端常用命令和vi命令修改文件及保存的使用方法

首先介绍一下Ubuntu下各个目录的一般作用: / 这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入"/home",你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录. /root 系统管理员(root user)的目录.至于系统管理员的权限有多大我这里就不在废话了.因此,请小心使用root帐号. /boot 系统启动文件,所有与系统启动有关的文件都保存在这里 . /bin 这里是存放系统的程序. /etc 主要存放了系统配置

【转】linux下终端命令快捷键

原文网址:http://daaoao.blog.51cto.com/2329117/554177 linux下使用终端不可避免. 使用终端快捷键,当然会使你如虎添翼.记住他们吧 终端快捷键 tab=补全 ctrl+a=开始位置 ctrl+e=最后位置 alt+shift+f 光标位置移动到前一个单词 alt+shift+b 光标位置移动到后一个单词 ctrl+k=删除此处至末尾所有内容 ctrl+u=删除此处至开始所有内容 alt+backspace=删除此处到光标所在单词的开头的所有内容 ct

Linux下终端的快捷键及建立打开终端的快捷键

Linux终端使用技巧 今天才发现Linux下的终端有这么多好用的快捷键. Shift+Ctrl+T:新建标签页 Shift+Ctrl+W:关闭标签页 Ctrl+PageUp:前一标签页 Ctrl+PageDown:后一标签页 Shift+Ctrl+PageUp:标签页左移 Shift+Ctrl+PageDown:标签页右移 Alt+1:切换到标签页1 Alt+2:切换到标签页2 Alt+3:切换到标签页3 Shift+Ctrl+N:新建窗口 Shift+Ctrl+Q:关闭终端 终端中的复制/粘

Linux下终端利器tmux(转)

“君子生非异也,善假于物也” .–语出<荀子·劝学> 如果记得没错的话,<荀子·劝学>我们这一代高中的时候应该都读过这篇文章.原意大概是君子的资质与一般人没有什么区别,君子之所以高于一般人,是因为他能善于利用外物.对于技术人来说,好工具的选择和使用往往可以省去很多不必要的麻烦,好的开源工具很多,看你如何去使用.对于终端复用工具这里推荐使用tmux,当然此类工具比较好的还有screen,不过相对screen 这里我更倾向于推荐tmux[强悍的分屏等]. 如果仅仅只是多标签的功能,那么

linux下终端,vim显示中文为乱码

这个问题,主要还是一些环境变量设置不对导致. 主要修改的文件包括: 1./var/lib/locales/supported.d/local 2./etc/environment 3.~/.vimrc 首先, sudo  vim /var/lib/locales/supported.d/local    en_HK.UTF-8 UTF-8    en_US.UTF-8 UTF-8    zh_CN.UTF-8 UTF-8    zh_CN.GBK   GBK     #增加    zh_CN.G

Linux下终端多任务管理,再也不用担心多个vim来回切了

Job Control 后台运行 使用 & 将指令放入后台运行,但是输出流还是会打印在终端上,所以使用的时候注意将输出流重定向到文件或者/dev/null舍弃掉 tar -zcvf test.tgz ./data > /dev/null & 管理操作 操作&指令 参数 意义 ctrl+z - 暂停当前任务 fg jobNumber 需使用%标明参数为job编号而非pid 唤醒暂停的工作,进入前台 bg jobNumber 需使用%标明参数为job编号而非pid 激活暂停的工作

Linux下终端的快捷键及建立打开终端的快捷键【转载】

Shift+Ctrl+T:新建标签页 Shift+Ctrl+W:关闭标签页 Ctrl+PageUp:前一标签页 Ctrl+PageDown:后一标签页 Shift+Ctrl+PageUp:标签页左移 Shift+Ctrl+PageDown:标签页右移 Alt+1:切换到标签页1 Alt+2:切换到标签页2 Alt+3:切换到标签页3 Shift+Ctrl+N:新建窗口 Shift+Ctrl+Q:关闭终端 终端中的复制/粘贴: Shift+Ctrl+C:复制 Shift+Ctrl+V:粘贴 终端改

Linux 下终端 C 语言控制光标的技巧

// 清除屏幕 #define CLEAR() printf("\033[2J") // 上移光标 #define MOVEUP(x) printf("\033[%dA", (x)) // 下移光标 #define MOVEDOWN(x) printf("\033[%dB", (x)) // 左移光标 #define MOVELEFT(y) printf("\033[%dD", (y)) // 右移光标 #define MOV