用Python編寫一個基于終端的實現(xiàn)翻譯的腳本
來源:易賢網(wǎng) 閱讀:715 次 日期:2015-04-28 14:28:16
溫馨提示:易賢網(wǎng)小編為您整理了“用Python編寫一個基于終端的實現(xiàn)翻譯的腳本”,方便廣大網(wǎng)友查閱!

用Python編寫一個基于終端的實現(xiàn)翻譯的腳本

為什么寫這個程序,為什么不給這個程序配備gui?原因很簡單,因為我是一個命令行控,Linux習(xí)慣了不習(xí)慣了鼠標(biāo),總覺得點(diǎn)著不如敲命令快,各位在看這篇文章就說明和本人有相同的愛好.這個用python寫的翻譯工具是通過google來實現(xiàn)的,由于google返回的數(shù)據(jù)不是很規(guī)范(或者說我沒有找到規(guī)律),現(xiàn)在前三項能正常顯示(源詞,翻譯結(jié)果,和漢語拼音).下面的詞性和其他釋義可能不同,見諒,望大神可以指點(diǎn)下小弟和幫小弟完善,這里趕緊不盡.

好了不費(fèi)話了,下面放代碼:

#!/usr/bin/env python

# -*-coding:utf8 -*-

'''

#=============================================================================

# FileName: translate.py

# Desc: To translate with zh to en or en2zh

# Author: cold

# Email:

# HomePage:

# 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)如何使用了這里就不羅嗦了.

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:用Python編寫一個基于終端的實現(xiàn)翻譯的腳本
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)