Почему Python выводит номера строк в стандартный вывод

#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. Спасибо за решение!