基于网上很多都是Python2.X的例子,工作中需要翻译1000多条菜单名称,所以连夜整了一个小工具,还待完善,分享出来,希望帮助到需要的人。
代码:
import http
import hashlib
import urllib.request
import random
import json
while True:
fin = open(r'D:\1.txt', 'r') #以读的方式打开输入文件
fout = open(r'D:\2.txt', 'w') #以写的方式打开输出文件
for eachLine in fin:
appid = '自己申请' #参考百度翻译后台,申请appid和secretKey
secretKey = '自己申请'
httpClient = None
myurl = '/api/trans/vip/translate'
q = eachLine.strip() #文本文件中每一行作为一个翻译源
fromLang = 'zh' #中文
toLang = 'en' #英文
salt = random.randint(32768, 65536)
sign = appid+q+str(salt)+secretKey
sign = sign.encode('UTF-8')
m1 = hashlib.md5()
m1.update(sign)
sign = m1.hexdigest()
myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
httpClient.request('GET', myurl)
#response是HTTPResponse对象
response = httpClient.getresponse()
html= response.read().decode('UTF-8')
target2 = json.loads(html)
src = target2["trans_result"][0]["dst"]
#print(src)#取得翻译后的文本结果,测试可删除注释
outStr = src
fout.write(outStr.strip() + '\n')
fin.close()
fout.close()
print('翻译成功,请查看文件')
break
致谢
@http://my.csdn.net/MrLevo520《—他是大神
@DT君,创建了Python交流群微信关注她:dtcaijing002