Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 26, 2024 16:58:25

PRIZRAK.88
Зарегистрирован: 2024-04-26
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема со скриптом для перевода

Всем привет. Написал небольшой скрипт, который делает перевод файла с субтитрами. Если строк около 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)

Прикреплённый файлы:
attachment test.py - Visual Studio Code 26.04.2024 12_02_22.png (87,0 KБ)

Офлайн

#2 Апрель 27, 2024 05:16:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

Проблема со скриптом для перевода

PRIZRAK.88
В чем может быть проблема я понять не могу.
Проверь файл с данными на лишние пустые строки и удали их из него.



Офлайн

#3 Апрель 27, 2024 09:32:54

PRIZRAK.88
Зарегистрирован: 2024-04-26
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема со скриптом для перевода

Собственно это не дало результатов.
Тем более, файл такого же вида но с меньшим количеством строк (около 50) переводится нормально

Отредактировано PRIZRAK.88 (Апрель 27, 2024 09:40:31)

Офлайн

#4 Апрель 27, 2024 09:41:59

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

Проблема со скриптом для перевода

Сделай вручную тестовый файл с субтитрами на сорок строк и сделай вручную тестовый файл с субтитрами на сто строк и проверь на этих двух файлах свой скрипт.

Если он сработает для них, ищи различия этих файлов с тем файлом, который не обрабатывается.



Офлайн

#5 Апрель 27, 2024 16:38:12

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1348
Репутация: +  118  -
Профиль   Отправить e-mail  

Проблема со скриптом для перевода

PRIZRAK.88
Тем более, файл такого же вида но с меньшим количеством строк (около 50) переводится нормально
там скорее всего ограничение на вводимые символы, если запросить большой перевод, то вернет None, можно файл разделить на нужное кол-во символов

Офлайн

#6 Апрель 28, 2024 04:39:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

Проблема со скриптом для перевода

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 даже не позаботился о том, чтобы выдавать там всё правильно на экран. Вот эти загадочные сообщения из каких-то глубин говорят вот как раз об этом.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version