import http
import hashlib
import urllib.request
import random
import json
import csv
import pandas as pd
def nodes_name_translate(node_name):
appid = '' # 自己申请appid和secretKey
secretKey = ''
httpClient = None
myurl = '/api/trans/vip/translate'
q = node_name # 文本文件中每一行作为一个翻译源
fromLang = 'auto' # 自动
# 英文en 中文 zh
toLang = 'zh'
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 = httpClient.getresponse()
html = response.read()
target2 = json.loads(html)
src = target2['trans_result'][0]['dst']
outStr = src
return outStr
# 读需要被翻译的文件
translate_list_path = r'放需要翻译的文件'
translate_list = pd.read_csv(translate_list_path, header=None,encoding='UTF-8')[0].values.tolist()
translated_file_dict = []
for index,translate in enumerate(translate_list):
try:
node_translate = nodes_name_translate(translate)
translated_file_dict.append([translate, node_translate])
print("翻译第%d行"%(index + 1),translate, node_translate)
except BaseException:
continue
print(translated_file_dict)
# 存翻译好的文件
with open(r'存放翻译好的文件', 'w', encoding='UTF-8', newline='') as csv_write:
for translated_node in translated_file_dict:
csv.writer(csv_write).writerow([translated_node[0], translated_node[1]])
python调用百度API实现中英文互译
最新推荐文章于 2024-02-27 13:30:00 发布