Найти - Пользователи
Полная версия: Проблема со скриптом для перевода
Начало » Python для новичков » Проблема со скриптом для перевода
1
PRIZRAK.88
Всем привет. Написал небольшой скрипт, который делает перевод файла с субтитрами. Если строк около 45 то все нормально. Но если файл больше, то вылезает вот такая ошибка. В чем может быть проблема я понять не могу. Вдруг кто сталкивался или есть советы как сделать лучше.

import os
import sys

folder_path = 'D:\ПРОГРАММИРОВАНИЕ\Python'
file_name = None

for file in os.listdir(folder_path):
if file.endswith('.srt'):
file_name = file
break

if file_name:
print(f"The first .srt file found in the folder is: {file_name}")
print(file_name)
else:
print("No .srt file found in the folder.")

from googletrans import Translator

translator = Translator()

with open(file_name, 'r') as input_file:
english_text = input_file.read()

translated_text = translator.translate(english_text, src='en', dest='ru').text

with open(file_name, 'w') as output_file:
output_file.write(translated_text)
py.user.next
PRIZRAK.88
В чем может быть проблема я понять не могу.
Проверь файл с данными на лишние пустые строки и удали их из него.
PRIZRAK.88
Собственно это не дало результатов.
Тем более, файл такого же вида но с меньшим количеством строк (около 50) переводится нормально
py.user.next
Сделай вручную тестовый файл с субтитрами на сорок строк и сделай вручную тестовый файл с субтитрами на сто строк и проверь на этих двух файлах свой скрипт.

Если он сработает для них, ищи различия этих файлов с тем файлом, который не обрабатывается.
xam1816
PRIZRAK.88
Тем более, файл такого же вида но с меньшим количеством строк (около 50) переводится нормально
там скорее всего ограничение на вводимые символы, если запросить большой перевод, то вернет None, можно файл разделить на нужное кол-во символов
py.user.next
xam1816
там скорее всего ограничение на вводимые символы
https://py-googletrans.readthedocs.io/en/latest/
Там ограничение 15000 символов.

В самом googletrans есть работа с json
https://github.com/ssut/py-googletrans/blob/master/googletrans/utils.py
Там есть какие-то проверки-недопроверки. Он проверяет только ValueError, а у PRIZRAK.88 - TypeError.

Вот здесь эта ошибка возникает
https://github.com/ssut/py-googletrans/blob/d15c94f176463b2ce6199a42a1c517690366977f/googletrans/client.py#L88
Автор googletrans даже не позаботился о том, чтобы выдавать там всё правильно на экран. Вот эти загадочные сообщения из каких-то глубин говорят вот как раз об этом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB