最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)單詞翻譯功能

 更新時(shí)間:2017年06月06日 13:42:16   作者:RayFong  
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)單詞翻譯功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

      在進(jìn)行英文文獻(xiàn)閱讀時(shí),經(jīng)常會(huì)出現(xiàn)一些不認(rèn)識(shí)的單詞,但對(duì)于一些pdf閱讀器,比如Foxit閱讀器使用翻譯功能需要點(diǎn)擊(Extra->Translate),并且啟用了翻譯功能將不能使用注釋功能,這對(duì)于閱讀者來(lái)說(shuō)將是極不方便的。所以為了方便查詢(xún)單詞,自己開(kāi)發(fā)了個(gè)Windows環(huán)境下的Python程序用于監(jiān)控并查詢(xún)單詞,而只需的操作就是選中單詞并按Ctrl+C即可。

  該P(yáng)ython程序主要分為三部分:從另外一個(gè)應(yīng)用程序中獲取需要查詢(xún)的單詞,單詞翻譯和單詞顯示。

  從另外一個(gè)應(yīng)用程序中獲取需要查詢(xún)的單詞涉及到進(jìn)程間通信,在Windows上最簡(jiǎn)單的方法是使用Clipboard功能。Python中有多種方式可以使用剪切板,比如使用win32clipboard(Python使用剪切板的方法)。這里使用的是Qt實(shí)現(xiàn)的clipboard,Qt的剪切板實(shí)現(xiàn)支持當(dāng)系統(tǒng)剪切板內(nèi)容發(fā)生改變時(shí)回調(diào)。具體實(shí)現(xiàn):

# 獲取Qt的剪切板并綁定回調(diào)函數(shù)
self.clipboard = QApplication.clipboard()
self.clipboard.dataChanged.connect(self.on_clipboard_changed)
 # 回調(diào)函數(shù)
 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)

  單詞翻譯直接調(diào)用有道單詞翻譯,單詞翻譯的鏈接格式為http://dict.youdao.com/w/{}/,其中{}為需要查詢(xún)的單詞。獲取的將是單個(gè)網(wǎng)頁(yè),使用BeautifulSoup提取最終的翻譯結(jié)果。

def queryWords(word):
 ''' 利用有道翻譯查詢(xún)單詞 '''
 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

  最后顯示是通過(guò)Qt編寫(xiě)的界面,原本是想查詢(xún)到單詞后,界面窗口自動(dòng)激活并移動(dòng)到最前端,但Windows不允許未經(jīng)用戶(hù)操作而將窗口移動(dòng)到最前端,所以最后只是通過(guò)激活窗口提示用戶(hù)。

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

行唐县| 丘北县| 固阳县| 芷江| 通许县| 九龙县| 贵德县| 永顺县| 井研县| 曲周县| 酒泉市| 栾川县| 江陵县| 大城县| 亚东县| 公主岭市| 长垣县| 元谋县| 锡林郭勒盟| 库伦旗| 旌德县| 盈江县| 环江| 诸暨市| 卢氏县| 江安县| 专栏| 临湘市| 仁化县| 英吉沙县| 溧水县| 呼伦贝尔市| 濮阳县| 墨竹工卡县| 拉孜县| 保山市| 德化县| 商都县| 襄城县| 城市| 九江县|