Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import json
- url = 'https://translate.yandex.net/api/v1.5/tr.json/translate?'
- key = 'trnsl.1.1.20170822T120709Z.9b3c7f8c6a63ff38.80fd7e1992262b417f775e4cc5c4da71c7cf4281'
- lang = 'en-ru'
- f_input = 'test.txt'
- f_out = 'out.txt'
- text = []
- length_total = 0
- limit = 50
- request_counter = 0
- def translate_and_save(text):
- """ text - list of strings """
- # Указываем, что будем менять глобальную переменную
- global request_counter
- request_counter += 1
- print('Запрос № ', request_counter)
- r = requests.post(url, data={'key': key, 'text': text, 'lang': lang})
- translated = json.loads(r.text)['text']
- # Ключ 'a' - чтобы не перезаписывало имеющиеся строки
- f = open(f_out, 'a')
- for line in translated:
- # Если записывать через принт, будет добавлен перенос строки
- print(line, file=f)
- f.close()
- f = open(f_input)
- lines = f.readlines()
- last = lines[-1].strip()
- for line in lines:
- line = line.strip()
- # Проверяем, поместится ли все в лимит
- if (len(line) + length_total) < limit:
- length_total += len(line)
- text.append(line)
- # Если данная строка - последняя, переводим, не дожидаясь
- if line == last:
- translate_and_save(text)
- else:
- # Если в лимит не помещается, то переводим то, что есть.
- translate_and_save(text)
- # Обнуляем счетчики и добавляем непоместившуюся строку
- text = []
- length_total = 0
- text.append(line)
- length_total += len(line)
- # Если строка последняя в файле, то переводим ее
- if line == last:
- translate_and_save(text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement