main.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import requests
  2. import argparse
  3. import json
  4. import sys
  5. import re
  6. # Парсим командную строку
  7. parser = argparse.ArgumentParser(description="Translator's manual!")
  8. parser.add_argument("--file", default=1, type=str, help="Файл, который вы хотите перевести")
  9. parser.add_argument("--lan", default=1, type=str, help="Выберите язык для перевода")
  10. parser.add_argument("--out", default="output.txt", type=str, help="Выберите файл для вывода")
  11. # Задаём аргументы
  12. args = parser.parse_args()
  13. text = args.file
  14. toLan = args.lan
  15. output = args.out
  16. # Проверка на ввод
  17. if text == 1 or toLan == 1:
  18. print("Ошибка! Неверно заданы аргументы!")
  19. sys.exit()
  20. # Считываем файл
  21. with open(text, 'r', encoding="utf-8") as file:
  22. data = file.read()
  23. # Делаем запрос
  24. headers = {
  25. 'Ocp-Apim-Subscription-Key': '9bf007a897f54e4a94203f8aa88cd2b1',
  26. 'Ocp-Apim-Subscription-Region': 'westeurope',
  27. 'Content-type': 'application/json'
  28. }
  29. url = 'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=' + toLan
  30. body = [{
  31. 'Text': data
  32. }]
  33. # Проверяем, выполнен ли запрос
  34. try:
  35. response = requests.post(url, headers=headers, json=body)
  36. except Exception:
  37. print("Ошибка! Запрос не был выполнен!")
  38. sys.exit()
  39. # Если запрос выполнен
  40. result = response.json()
  41. # Запись в файл
  42. f = open(output, 'w', encoding='utf-8')
  43. f.write(result[0]['translations'][0]['text'])
  44. f.close()
  45. print("\nПеревод успешно записан в файл!")