linux 终端翻译,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

时间: 08-09

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值