Запись результата перевода в txt или excel
В файле myfile.txt две строчки:
A blessing in disguise, Better late than never.
Перевод в консоли.
Что ни пробовал, выдает ошибки при writting в txt или excel
try:
with open("myfile.txt", "r") as file:
s = file.readlines()
from googletrans import Translator
translator = Translator()
result = translator.translate(s, dest='ru', src="en")
print(result[0].text+ " " + result[1].text)
except FileNotFoundError:
print("Невозможно открыть файл")
finally:
print(file.closed)
Решил продолжить:
Читаем из книги excel заносим результат в txt. Одна ошибка
AttributeError: 'list' object has no attribute 'closed'
Если я использую:
finally:
print(file.closed)
А так все хорошо.
UPD:
import openpyxl
wb = openpyxl.load_workbook(filename='Python_Youtube.xlsx')
sheet = wb['Sheet1']
# считываем значение определенной ячейки
val = sheet['B1'].value
# считываем заданный диапазон
file = [v[0].value for v in sheet['C1:C5']]
try:
with open("myfile2.txt", mode="w", encoding="utf-8") as outfl:
outfl.writelines([str(line) + "\n" for line in file])
except FileNotFoundError:
print("Невозможно открыть файл")
# finally:
# print(file.closed)
Ответы (1 шт):
В вашем коде нет никакой записи результата. В первом блоке кода вы открываете файл в режиме read-only и считываете из него данные. Больше к файлу вы никак не обращаетесь.
Для того, что бы записать данные в файл, нужно иметь примерно вот такой код:
try:
# открытие файла для чтения
with open("myfile.txt", mode="r", encoding="utf-8") as file:
s = file.readlines()
# перевод
from googletrans import Translator
translator = Translator()
result = translator.translate(s, dest='ru', src="en")
# вывод в консоль
print(result[0].text+ " " + result[1].text)
# запись в файл "out_result.txt"
with open("out_result.txt", mode="w", encoding="utf-8") as outfl:
outfl.write("\n".join(result))
except FileNotFoundError:
print("Невозможно открыть файл")
При этом обратите внимание на то, что в функции open нужно указывать так же аргумент encoding. Я указал распространенную кодировку "utf-8", но если вы работаете под Windows, то возможно у ваших файлов кодировка "cp1251". Если что-то не так будет с кодировками, то в файле с результатами вместо кириллицы вы получите кракозябры.