server error翻译利⽤百度翻译API,获取翻译结果
利⽤百度翻译API,获取翻译结果
translate.py
#!/usr/bin/python
#-*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf8")
import json #导⼊json模块
import urllib #导⼊urllib模块
from urllib2 import Request, urlopen, URLError, HTTPError #导⼊urllib2模块
def translate(inputFile, outputFile):
fin = open(inputFile, 'r') #以读的⽅式打开输⼊⽂件
fout = open(outputFile, 'w') #以写的⽅式代开输出⽂件
for eachLine in fin: #按⾏读⼊⽂件
line = eachLine.strip() #去除每⾏⾸尾可能的空格等
quoteStr = urllib.quote(line) #将读⼊的每⾏内容转换成特定的格式进⾏翻译
url = 'openapi.baidu/public/2.0/bmt/translate?client_id=WtzfFYTtXyTocv7wjUrfGR9W&q=' + quoteStr + '&from=auto&to=zh' try:
resultPage = urlopen(url) #调⽤百度翻译API进⾏批量翻译
except HTTPError as e:
print('The server couldn\'t fulfill the request.')
print('Error code: ', e.code)
except URLError as e:
print('We failed to reach a server.')
print('Reason: ', e.reason)
except Exception, e:
print'translate error.'
print e
continue
resultJason = ad().decode('utf-8') #取得翻译的结果,翻译的结果是json格式
js = None
try:
js = json.loads(resultJason) #将json格式的结果转换成Python的字典结构
except Exception, e:
print'loads Json error.'
print e
continue
key = u"trans_result"
if key in js:
dst = js["trans_result"][0]["dst"] #取得翻译后的⽂本结果
outStr = dst
else:
outStr = line #如果翻译出错,则输出原来的⽂本
fout.write(outStr.strip().encode('utf-8') + '\n') #将结果输出
fin.close()
fout.close()
if__name__ == '__main__':
translate(sys.argv[1], sys.argv[2]) #通过获得命令⾏参数获得输⼊输出⽂件名来执⾏,⽅便
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论