Обзор
Когда мы в PythonprintЧто именно мы используем при печати? На самом деле оператор печати — это просто функция, которую легко использовать в Python.sys.stdoutПростой интерфейс для объектов, т.е. мы также можем воспользоватьсяsys.stdoutЗавершите все действия печати при печати, такие как печатьHello, world!.
import sys
sys.stdout.write('Hello, world!')
Пример результата:
Hello, world!
более того
import sys
s1 = 'Hello,'
s2 = 'world!'
print(s1, s2, end='\n')
sys.stdout.write(str(s1) + ' ' + str(s2) + '\n')
Пример результата:
Hello, world!
Hello, world!
перенаправить поток вывода
Мы уже знаем, что печать зависит от sys.stdout, поэтому мы можем назначить sys.stdout чему-то другому, кроме стандартного потока вывода, то есть отправить напечатанный текст в другое место.
import sys
s1 = 'Hello,'
s2 = 'world!'
sys.stdout = open('hello.txt', 'a')
...
print(s1, s2)
print(s2, s1)
привет.текстовое содержание:
Hello, world!
world! Hello,
Видно, что стандартный поток вывода не печатает никакой информации, а пишется весь контент, который нужно напечататьhello.txtфайл, зачем это? потому что мы ставимsys.stdoutСброс в открытый файловый объект.После сброса все отпечатки в программе будут выводить текст в файлhello.txt, то есть в процессе всего один sys модуль, таким образом можно перенаправить все отпечатки. Конечно, мы также можем перенаправить одиночную печать, то есть параметр file в функции печати, описанной в предыдущем разделе, завершает перенаправление, поэтому исходная операция потока вывода не будет выполняться после того, как печать определит файл, который то есть экран не печатает функцию печати строковой информации.