Python实现单词翻译功能


Posted in Python onJune 06, 2017

      在进行英文文献阅读时,经常会出现一些不认识的单词,但对于一些pdf阅读器,比如Foxit阅读器使用翻译功能需要点击(Extra->Translate),并且启用了翻译功能将不能使用注释功能,这对于阅读者来说将是极不方便的。所以为了方便查询单词,自己开发了个Windows环境下的Python程序用于监控并查询单词,而只需的操作就是选中单词并按Ctrl+C即可。

该Python程序主要分为三部分:从另外一个应用程序中获取需要查询的单词,单词翻译和单词显示。

从另外一个应用程序中获取需要查询的单词涉及到进程间通信,在Windows上最简单的方法是使用Clipboard功能。Python中有多种方式可以使用剪切板,比如使用win32clipboard(Python使用剪切板的方法)。这里使用的是Qt实现的clipboard,Qt的剪切板实现支持当系统剪切板内容发生改变时回调。具体实现:

# 获取Qt的剪切板并绑定回调函数
self.clipboard = QApplication.clipboard()
self.clipboard.dataChanged.connect(self.on_clipboard_changed)
# 回调函数
 def on_clipboard_changed(self):
 data = self.clipboard.mimeData()
 if data.hasText():
  word = data.text().strip()
  m = re.match(r'[a-zA-Z]+', word)
  if m:
  self.setWord(word)
  #self.setWindowFlags(self.windowFlags() & QtCore.Qt.WindowStaysOnTopHint)
  #self.setWindowState(self.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
  trans = queryWords(word)
  self.setTrans(trans)
  
  ''' tip the window content has changed, but cannot move the window to the forground'''
  self.activateWindow()
  
  else:
  print(word)

单词翻译直接调用有道单词翻译,单词翻译的链接格式为http://dict.youdao.com/w/{}/,其中{}为需要查询的单词。获取的将是单个网页,使用BeautifulSoup提取最终的翻译结果。

def queryWords(word):
 ''' 利用有道翻译查询单词 '''
 url = 'http://dict.youdao.com/w/{}/'.format(word)
 html = getURL(url)
 soup = BeautifulSoup(html.text, 'html.parser')
 trans_container = soup.find(class_='trans-container')
 
 if not trans_container:
 ''' not found the translation '''
 return [word]
 
 trans_li = trans_container.find_all('li')
 trans_data = [li.text.strip() for li in trans_li]
 return trans_data

最后显示是通过Qt编写的界面,原本是想查询到单词后,界面窗口自动激活并移动到最前端,但Windows不允许未经用户操作而将窗口移动到最前端,所以最后只是通过激活窗口提示用户。

Python实现单词翻译功能

完整的代码位于https://github.com/llf2017/pyDict/blob/master/pyDict.py

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之print详解
Sep 28 Python
Python生成器(Generator)详解
Apr 13 Python
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
Python类的用法实例浅析
May 27 Python
Python爬取网易云音乐上评论火爆的歌曲
Jan 19 Python
提升Python程序性能的7个习惯
Apr 14 Python
使用python判断jpeg图片的完整性实例
Jun 10 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 #Python
python实现的正则表达式功能入门教程【经典】
Jun 05 #Python
Python中easy_install 和 pip 的安装及使用
Jun 05 #Python
详解Python pygame安装过程笔记
Jun 05 #Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 #Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 #Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 #Python
You might like
PHP实现获取图片颜色值的方法
2014/07/11 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
Python有序字典简单实现方法示例
2017/09/28 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
python3.6编写的单元测试示例
2019/08/17 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
职业生涯规划书范文
2014/03/10 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
小学生综合素质评语
2014/04/23 职场文书
金融专业求职信
2014/08/05 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书