用Python編寫一個基于終端的實現(xiàn)翻譯的腳本
為什么寫這個程序,為什么不給這個程序配備gui?原因很簡單,因為我是一個命令行控,Linux習(xí)慣了不習(xí)慣了鼠標(biāo),總覺得點著不如敲命令快,各位在看這篇文章就說明和本人有相同的愛好.這個用python寫的翻譯工具是通過google來實現(xiàn)的,由于google返回的數(shù)據(jù)不是很規(guī)范(或者說我沒有找到規(guī)律),現(xiàn)在前三項能正常顯示(源詞,翻譯結(jié)果,和漢語拼音).下面的詞性和其他釋義可能不同,見諒,望大神可以指點下小弟和幫小弟完善,這里趕緊不盡.
好了不費話了,下面放代碼:
#!/usr/bin/env python # -*-coding:utf8 -*- ''' #============================================================================= # FileName: translate.py # Desc: To translate with zh to en or en2zh # Author: cold # Email: wh_linux@126.com # HomePage: http://www.linuxzen.com # Version: 0.0.1 # LastChange: 2012-04-23 23:04:08 # History: #============================================================================= ''' import urllib import urllib2 from sys import argv,exit import re # 顯示幫助信息 def helpinfo(): print ''' Usage: pytran {zh2en|en2zh} content ''' # 格式化輸出 def formatresult(result,srclang): resu = result.split('[[') if (srclang=='en2zh' or srclang == 'zh2en'): firstre = resu[1].replace('[','').replace(']','').split('"') print '源詞:',firstre[3] print '結(jié)果:',firstre[1] if (srclang=='zh2en'): piny = firstre[7] else: piny = firstre[5] print '拼音:',piny if(srclang=='zh2en'): secresu=resu[2].replace('"','').split('[') else: secresu = resu[2].replace('"', '').split('[') print '詞性:',secresu[0].replace(',','') print '其他釋義:' for i in ''.join(secresu[1].split(']')).split(','): print i # 獲取命令行參數(shù) try: srclang = argv[1] except: helpinfo() exit(1) try: cont = argv[2] except: helpinfo() exit(2) # 判斷翻譯目標(biāo)語言用來確定傳送參數(shù) if(srclang == 'zh2en'): data=urllib.urlencode({'client':'t', 'text':cont, 'hl':'zh-CN','tl':'en', 'multires':'1','prev':'btn', 'ssel':'0','sc':'1'}) elif(srclang == 'en2zh'): data=urllib.urlencode({'client':'t', 'text':cont, 'hl':'zh-CN', 'sl':'en','tl':'zh-CN', 'multires':'1', 'prev':'btn', 'ssel':'0','sc':'1'}) else: helpinfo() # 打開google翻譯內(nèi)容 url = 'http://translate.google.cn/translate_a/t' req =urllib2.Request(url,data) req.add_header("User-Agent", "Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)") fd = urllib2.urlopen(req) result = fd.read() # 格式化輸出 formatresult(result, srclang) fd.close()
為了更方便的使用我們把這個腳本命名位pytranslate,放到/usr/bin下,并賦予執(zhí)行權(quán)限:
chmod +x /usr/bin/pytranslate
然后我們就可以使用它進(jìn)行翻譯了: 翻譯英文到中文:
pytranslate en2zh extent 源詞: extent 結(jié)果: 程度 拼音: Chéngdù 詞性: 名詞 其他釋義: 程度 范圍 幅度 規(guī)模 度 地步 廣度 長度 面 長短 份兒 界 en 翻譯中文到英文 pytranslate zh2en 中國 源詞: 中國 結(jié)果: China 拼音: Zhōngguó 詞性: 名詞 其他釋義: China zh-CN
好吧相信聰明的你肯定發(fā)現(xiàn)如何使用了這里就不羅嗦了.
- Pycharm中安裝wordcloud等庫失敗問題及終端通過pip安裝的Python庫如何添加到Pycharm解釋器中(推薦)
- Python在終端通過pip安裝好包以后在Pycharm中依然無法使用的問題(三種解決方案)
- Python終端輸出彩色字符方法詳解
- python paramiko遠(yuǎn)程服務(wù)器終端操作過程解析
- 使用python模擬命令行終端的示例
- 在PyCharm的 Terminal(終端)切換Python版本的方法
- python隱藏終端執(zhí)行cmd命令的方法
- Python檢查ping終端的方法
- 淺談終端直接執(zhí)行py文件,不需要python命令
- 在Linux命令行終端中使用python的簡單方法(推薦)
- python如何在終端里面顯示一張圖片
- 在終端啟動Python時報錯的解決方案
相關(guān)文章
Python字符串的encode與decode研究心得亂碼問題解決方法
為什么Python使用過程中會出現(xiàn)各式各樣的亂碼問題,明明是中文字符卻顯示成“\xe4\xb8\xad\xe6\x96\x87”的形式?2009-03-03django+echart數(shù)據(jù)動態(tài)顯示的例子
今天小編就為大家分享一篇django+echart數(shù)據(jù)動態(tài)顯示的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08python?使用第三方庫requests-toolbelt?上傳文件流的示例
這篇文章主要介紹了python?使用第三方庫requests-toolbelt?上傳文件流,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09python3.6.3+opencv3.3.0實現(xiàn)動態(tài)人臉捕獲
這篇文章主要為大家詳細(xì)介紹了python3.6.3+opencv3.3.0實現(xiàn)動態(tài)人臉捕獲,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05Pandas中DataFrame數(shù)據(jù)刪除詳情
這篇文章主要以介紹的是Pandas中DataFrame的數(shù)據(jù)刪除的相關(guān)資料,主要使用drop、del方式,需要的朋友可以參考下面文章的具體內(nèi)容2021-09-09