Python3-结合百度翻译开放API实现批量翻译

基于网上很多都是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

你可能感兴趣的:(Python)