#python #python-3.x #windows #stdout
#python #python-3.x #Windows #стандартный вывод
Вопрос:
Следующий код на Python 3.8 в Windows работает по мере необходимости, но он выводит числа в стандартный вывод, и я не могу понять почему. Он рекурсивно считывает каталог и корректно выводит в текстовый файл.
import os
targpath = "C:\users\ReedActed\desktop\" # To direct location of target file
with open(targpath 'P-drive-test.txt', 'w', encoding='utf-8') as outfile:
for r, d, f in os.walk('P:\backup\'):
for file in f:
fileneat = os.path.join(r, file) "n" # Needs the line break
outfile.write(fileneat)
Файл выглядит правильно, но в стандартном выводе я получаю это:
99
65
75
47
41
33
Что создает стандартный вывод? Это не проблема, просто любопытство.
Комментарии:
1. Это весь код? Я не вижу здесь ничего, что могло бы выводиться в стандартный вывод.
2. Да, это оно и есть. Буквально ничего другого.
3. Хм, как именно вы это запускаете?
4. Откройте окно DOS, запустите Python 3.8, вставьте код. Я запускаю его непосредственно через интерпретатор, а не в файле .py.
5. Хорошо, тогда это происходит потому, что вы запускаете его в REPL, поэтому он печатается, когда что-то оценивается, а именно, результат
outfile.write(...)
, который возвращает количество записанных байт
Ответ №1:
Этот ответ действительно относится к juanpa arrivillaga, но он выглядит как результат outfile .write() вернет количество байтов, записанных, поскольку они находятся в REPL. Спасибо за решение!