全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python实现单词翻译功能

      在进行英文文献阅读时,经常会出现一些不认识的单词,但对于一些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不允许未经用户操作而将窗口移动到最前端,所以最后只是通过激活窗口提示用户。

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

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


# Python单词翻译  # Python翻译  # Python单词翻译功能  # python翻译软件实现代码(使用google api完成)  # python自动翻译实现方法  # python3使用urllib示例取googletranslate(谷歌翻译)  # python在命令行下使用google翻译(带语音)  # 使用Python3中的gettext模块翻译Python源码以支持多语言  # python使用百度翻译进行中翻英示例  # 使用Python从有道词典网页获取单词翻译  # 用Python编写一个基于终端的实现翻译的脚本  # python利用有道翻译实现"语言翻译器"的功能实例  # python3调用百度翻译API实现实时翻译  # 剪切板  # 回调  # 将是  # 另外一个  # 应用程序  # 的是  # 阅读者  # 中有  # 只需  # 英文  # 不认识  # 可以使用  # 本是  # 涉及到  # 将不  # 最简单  # 经常会  # 绑定  # 极不  # 并按 


相关文章: 如何通过服务器快速搭建网站?完整步骤解析  七夕网站制作视频,七夕大促活动怎么报名?  网站制作员失业,怎样查看自己网站的注册者?  建站之星安装失败:服务器环境不兼容?  PHP正则匹配日期和时间(时间戳转换)的实例代码  成都网站制作公司哪家好,四川省职工服务网是做什么用?  中山网站制作网页,中山新生登记系统登记流程?  建站主机系统SEO优化与智能配置核心关键词操作指南  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何访问已购建站主机并解决登录问题?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  如何在IIS中新建站点并配置端口与物理路径?  如何使用Golang table-driven基准测试_多组数据测量函数效率  阿里云网站制作公司,阿里云快速搭建网站好用吗?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  哈尔滨网站建设策划,哈尔滨电工证查询网站?  建站主机服务器选型指南与性能优化方案解析  宁波免费建站如何选择可靠模板与平台?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  如何在IIS中新建站点并配置端口与IP地址?  如何通过.red域名打造高辨识度品牌网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  建站之星安装后界面空白如何解决?  红河网站制作公司,红河事业单位身份证如何上传?  移民网站制作流程,怎么看加拿大移民官网?  如何在搬瓦工VPS快速搭建网站?  C#如何序列化对象为XML XmlSerializer用法  寿县云建站:智能SEO优化与多行业模板快速上线指南  制作电商网页,电商供应链怎么做?  建站之星备案是否影响网站上线时间?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  建站之星如何修改网站生成路径?  盘锦网站制作公司,盘锦大洼有多少5G网站?  建站主机无法访问?如何排查域名与服务器问题  建站主机选哪种环境更利于SEO优化?  如何在腾讯云免费申请建站?  如何在阿里云虚拟主机上快速搭建个人网站?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  建站之星如何快速解决建站难题?  如何在Golang中使用replace替换模块_指定本地或远程路径  兔展官网 在线制作,怎样制作微信请帖?  定制建站流程步骤详解:一站式方案设计与开发指南  小说建站VPS选用指南:性能对比、配置优化与建站方案解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。