Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.97 KB | None | 0 0
  1. import requests
  2. import json
  3.  
  4. url = 'https://translate.yandex.net/api/v1.5/tr.json/translate?'
  5. key = 'trnsl.1.1.20170822T120709Z.9b3c7f8c6a63ff38.80fd7e1992262b417f775e4cc5c4da71c7cf4281'
  6. lang = 'en-ru'
  7. f_input = 'test.txt'
  8. f_out = 'out.txt'
  9. text = []
  10. length_total = 0
  11. limit = 50
  12. request_counter = 0
  13.  
  14. def translate_and_save(text):
  15.     """ text - list of strings """
  16. # Указываем, что будем менять глобальную переменную    
  17.     global request_counter
  18.     request_counter += 1
  19.     print('Запрос № ', request_counter)
  20.     r = requests.post(url, data={'key': key, 'text': text, 'lang': lang})
  21.     translated = json.loads(r.text)['text']
  22. # Ключ 'a' - чтобы не перезаписывало имеющиеся строки    
  23.     f = open(f_out, 'a')
  24.     for line in translated:
  25. # Если записывать через принт, будет добавлен перенос строки        
  26.         print(line, file=f)
  27.     f.close()
  28.  
  29.  
  30. f = open(f_input)
  31. lines = f.readlines()
  32. last = lines[-1].strip()
  33. for line in lines:
  34.     line = line.strip()
  35. # Проверяем, поместится ли все в лимит
  36.     if (len(line) + length_total) < limit:
  37.         length_total += len(line)
  38.         text.append(line)
  39. # Если данная строка - последняя, переводим, не дожидаясь        
  40.         if line == last:
  41.             translate_and_save(text)
  42.     else:
  43. # Если в лимит не помещается, то переводим то, что есть.
  44.         translate_and_save(text)
  45. # Обнуляем счетчики и добавляем непоместившуюся строку        
  46.         text = []
  47.         length_total = 0
  48.         text.append(line)
  49.         length_total += len(line)
  50. # Если строка последняя в файле, то переводим ее        
  51.         if line == last:
  52.             translate_and_save(text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement