Ошибка функции fwrite Python: требуется объект типа байтов, а не str

-4

Существует несколько ошибок: "необходим байтовый объект, а не" str ". Но ни один из них не связан с моим. Я открываю файл, используя open (имя файла," w "), а не" wb ". 150 строк. Начало кода - назначить ввод командной строки в аргументы парсера.

Args.result - пустой текстовый файл, на который я хочу написать свой результат. Я открываю его, используя open.

Я думаю, что для иллюстрации моего вопроса достаточно кода. Перед строкой 65 код записывает две функции, которые будут использоваться при вычислении, но я думаю, что это не должно быть связано с ошибкой.

В коде я вручную создаю файл "save/results/result.txt" в командном терминале. Затем я открываю файл в строке 132. enter image description here enter image description here Остальным кодом является enter image description here enter image description here Произошла интересная ошибка, когда строка 158 работает нормально. "begin training\n" можно записать в файл. Затем для строки 165, в течение первого времени цикла, это нормально, и "aa\n" можно записать в файл. Но во втором цикле программа заканчивается ошибкой "байтоподобный" объект, а не "str". Сообщение об ошибке выглядит следующим образом. enter image description here

Кто-нибудь мог бы помочь в этом? Очень благодарен.

спросил(а) 2018-07-26T07:32:00+03:00 2 года, 3 месяца назад
0
-4

У меня никогда не было проблем с похожим кодом, но если вы хотите быстро исправить, я бы поставил на создание строки с именем f_text и добавлением к ней в цикле for, а затем записывал все это в файл после последней итерации для цикла будет простым способом обойти проблему.

IE:

f_text = ""
for epoch in range(your_range):
# Do calculations
print(the_stuff_you_wanted_to)
f_text += the_stuff_you_wanted_to + "\n"
f.write(f_text)

Я в основном размещаю это, чтобы действовать как быстрое решение. Я чувствую, что, вероятно, лучшее решение и может помочь больше, если вы больше показываете свой код, например, когда вы фактически инициализируете f.

ответил(а) 2018-07-26T07:50:00+03:00 2 года, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема