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

linux 终端翻译,linux下终端使用有道翻译相关推荐

  1. python有道翻译-使用python2爬取有道翻译

    爬虫的核心思想:模拟浏览器正常访问服务器,一般情况只要浏览器能访问的,都可以爬,如果被反爬,则考虑反复测试添加Request Header数据,知道可以爬取为止. 反爬思路目前知道的有:User-Ag ...

  2. python有道翻译接口-Python通过调用有道翻译api实现翻译功能示例

    本文实例讲述了Python通过调用有道翻译api实现翻译功能.分享给大家供大家参考,具体如下: 通过调用有道翻译的api,实现中译英.其他语言译中文 Python代码: # coding=utf-8 ...

  3. python调用有道翻译_python 简单的调用有道翻译

    代码 import json import requests # 翻译函数,word 需要翻译的内容 def translate(word): # 有道词典 api url = "http: ...

  4. 把英文翻译成中文php,中文翻译成英文,英文翻译成中文(调用的有道翻译的api)示例源码...

    [实例简介] 调用的 有道翻译的api [实例截图] [核心代码] define("CURL_TIMEOUT", 20); define("URL", &quo ...

  5. 下 终端_Linux/UNIX 下终端复用利器 tmux

    tmux 是一个终端复用器(terminal multiplexer). 简介 tmux 是一个终端复用器类自由软件,功能类似 GNU Screen,但使用 BSD 许可发布.用户可以通过 tmux ...

  6. python有道翻译-利用python写一个有道翻译的脚本

    废话不多说,直接上代码import urllib.request import urllib.parse import json content = input("请输入要翻译的内容:&qu ...

  7. python有道翻译接口-Python调用有道翻译api实现翻译

    通过调用有道翻译的api,实现中译英.其他语言译中文 代码: # coding=utf-8 import urllib import urllib2 import json import time i ...

  8. python 文本翻译 项目_如何用python批量翻译文本?

    首先,看一下百度翻译的官方api文档. http://api.fanyi.baidu.com/api/trans/product/apidoc # coding=utf-8 #authority:bi ...

  9. 编写程序实现通过有道或百度翻译url对用户输入数据进行翻译_8亿用户AI有道:超强神经网络翻译技术大解密...

    [新智元导读]数据的作用在人工智能发展道路上愈发被重视.7月27日,在广州举行的GMIC大会上,网易有道技术总监林会杰表示目前AI+教育还在初级阶段,对于这一行业而言,得数据者得先机.这家拥有国内最大 ...

  10. 编写程序实现通过有道或百度翻译url对用户输入数据进行翻译_8亿用户AI有道,超强神经网络翻译技术大解密...

    [新智元导读]数据的作用在人工智能发展道路上愈发被重视.7月27日,在广州举行的GMIC大会上,网易有道技术总监林会杰表示目前AI+教育还在初级阶段,对于这一行业而言,得数据者得先机.这家拥有国内最大 ...

最新文章

  1. Swift学习总结【持续更新】
  2. 中国科学技术大学 中科大(USTC)UBUNTU源Linux镜像站IPV4/IPV6
  3. 高频面试考点:Redis中有几百万数据量,如何进行高效访问?
  4. 统计计量 | 统计学中常用的数据分析方法汇总
  5. Docker+geoserver发布shp地图服务
  6. Linux下备份cisco路由配置
  7. 【转】D365 FO第三方集成(三)---服务实现
  8. struts2+hibernate+spring配置详解
  9. poj 2777 AND hdu 5316 线段树
  10. 超实用的shell脚本--一键获取进程所有信息
  11. 如何短期通过2022年3月PMP考试?
  12. arcgis中python计算面积的表达式_Python计算任意多边形面积算法
  13. Maven下载安装及修改setting内容
  14. python爬虫-字体反爬全流程(woft文件-转换字体-字体图片-图片识别全流程)
  15. anaconda conda环境管理命令
  16. ROS机器人学习历程三:Publisher 和Subscriber
  17. 电信9530手机上面使用移动的SIM卡
  18. Go、Rust、C++和Zig语言的生产力对比 | Gopher Daily (2021.03.28) ʕ◔ϖ◔ʔ
  19. [转载]以xilinx为例的低功耗设计
  20. python实现用伏羲八卦对ASCII码进行加密

热门文章

  1. 金山词霸划译功能对IDE的影响
  2. 【京东商城首页实战4】topbanner制作
  3. sklearn.metrics.accuracy_score/precision_score/recall_score、micro/macro/weighted(准确率、召回率)
  4. Namecheap无法登录
  5. otl连接mysql_otl通过myodbc连接mysql
  6. 异常检测时间序列_神经病学时间序列/异常检测:分层时间记忆
  7. K-means聚类攻击类型
  8. IT服务台的进化(1)--企业内部服务台的优缺点
  9. Linux接蓝牙音响无声音,win10蓝牙音箱没有声音怎么办_win10蓝牙音响连接成功没声音处理方法...
  10. 《Scrum实战》第3次课【富有成效的每日站会】作业汇总