# -*- coding: utf-8 -*- import http.client, urllib.parse import nltk.data subscriptionKey = '***************' host = 'api.microsofttranslator.com' path = '/V2/Http.svc/Translate' with open('Test.TXT', 'r') as f: lst = f.read().splitlines() one = ' '.join(lst) tokenizer = nltk.data.load('tokenizers/punkt/english.pickle') dow = tokenizer.tokenize(one, realign_boundaries=True) ru_dow = [] target = 'ru' params = '?to=' + target + '&text=' + urllib.parse.quote (text) def get_suggestions (): headers = {'Ocp-Apim-Subscription-Key': subscriptionKey} conn = http.client.HTTPSConnection(host) conn.request ("GET", path + params, None, headers) response = conn.getresponse () return response.read () result = get_suggestions () for i in dow: text = i ru_dow.append(result.decode("utf-8")) with open('RU_TEST.txt', "w") as file: file.write(' '.join(ru_dow)) print('END')
Подскажите, по какой причине в списке ru_dow все строки переписываются на перевод последней строки. Допустим в файле 6 строк и последняя строка имеет значение ‘Привет’, тогда в списке оказывается 6 строк “Привет”. А перевод предыдущих затирается.
А если убрать функцию get_suggestions() и вставить ее тело в цикл for, то все ок. Но при этом перевод идет очень долго. На перевод 1 млн.символов требуется порядка 3 часов.
for i in dow: text = i params = '?to=' + target + '&text=' + urllib.parse.quote (text) headers = {'Ocp-Apim-Subscription-Key': subscriptionKey} conn = http.client.HTTPSConnection(host) conn.request ("GET", path + params, None, headers) response = conn.getresponse () result = response.read () ru_dow.append(result.decode("utf-8"))