更多课程 选择中心


Python培训

400-996-5531

用python做一个划词翻译软件

  • 发布:Python培训
  • 来源:孤独的s
  • 时间:2019-10-30 11:33

在我们学习的时候,在我们查找文档的时候,很多内容都是英文的,如果你的英文不好,就很难去阅读这篇文章,语言不通是我们学习的最大的绊脚石,虽然谷歌浏览器有翻译的功能,翻译出来的效果也是挺不错,但是这样子阅读文章并不能对我们的工作学习起到帮助,反倒是机械化的翻译有可能会是你的中文水平下降,阅读一篇外国文章,最重要的就是对每个单词的理解,如果单词的意思都不懂,更不要想去理解文章的意思了。

因此这里做了一个划词翻译的小软件,鼠标选中文本就可以翻译出来。

例如,在阅读qt帮助的时候,碰到生词:

用python做一个划词翻译软件

这里用到的知识点挺多的,有获取鼠标事件,接着调用键盘事件,然后调用爬虫去爬取百度翻译的结果,接着用tkinter显示出来。

获取鼠标事件,这里用到的是pyhook,用来判断鼠标点击事件,pyhook的安装比较复杂,普通的pip并不能够安装,需要去网站下载pyhook的whl

网站地址在此:

#/~gohlke/pythonlibs/

下载好包后,在命令行窗口输入pip install 包的地址+包名。

使用pyhook的一般方法如下:

def main():

# 创建管理器

hm = pyWinhook.HookManager()

# 监听键盘

hm.KeyDown = onKeyboardEvent hm.HookKeyboard()

# 监听鼠标

hm.MouseAll = onMouseEvent hm.HookMouse()

# 循环监听

pythoncom.PumpMessages()

其中有两个函数就是用来处理获得的事件的方法,需要定义相应的函数

例如键盘监听:

def onKeyboardEvent(event):

#print(event.Key)

# 返回按下的键

if event.Key == 'Q':

event = quit()

return True

这个函数的意思是,如果接收到键盘按下Q,那么结束循环监听,程序结束

获得鼠标事件的函数:

def onMouseEvent(event):

if (event.MessageName != "mouse move"): # 因为鼠标一动就会有很多mouse move,所以把这个过滤下

if event.MessageName == 'mouse left up':

pyautogui.hotkey('ctrl','c') #如果鼠标点击则按下ctrl+c

s = pyperclip.paste() global key global v try: key,v =getword(s) #调用爬虫获得翻译的结果

except: key = 'null' v = 'null' return True

# 为True才会正常调用,如果为False的话,此次事件被拦截

上面的鼠标函数中有一个pyautogui库里的热键函数,关于pyautogui可以到这里查看python---很多行代码做一个自动打开软件的程序。

这里实现的是获得鼠标选取的内容,紧接着传递给爬虫,然后将翻译的结果返回到key和v,之中。

关于爬取百度翻译的,主要是利用post方法获得翻译的json数据,在对json数据解析,提取翻译的结果。

def request_translate(self):

"""

向百度请求 json 数据 :

return: 向百度请求的 json 数据 """

data = self.get_post_data()

try:

response_0 = requests.request(method="post", url=self.url_0,

headers=self.headers, data=data).json()

except Exception: # 进行数据请求的任何异常处理

response_0 = ''

try:response_1 = requests.request(method="post", url=self.url_1,

headers=self.headers, data=data).json()

except Exception: # 进行数据请求的任何异常处理

response_1 = ''

return response_0, response_1

在最后翻译结果获取到了,在利用pytkinter可视化一下,在将其打包,这样就是一个划词翻译软件了。

用python做一个划词翻译软件

就这样,在日常的使用中也是非常便利的,只需要用鼠标选取一下,它就显示出单词的翻译结果。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python if-else 语句练习
下一篇:Python 2的结束意味着什么

Python IDE推荐7个你可能会错过的Python IDE

Python面试题之Python中爬虫框架或模块的区别

2021年Python面试题及答案汇总详解

python数据分析,你需要这些工具

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省