Перенаправление потока печати операции печати Python3 (ниже)

Python
Перенаправление потока печати операции печати Python3 (ниже)

Обзор

Когда мы в 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 в функции печати, описанной в предыдущем разделе, завершает перенаправление, поэтому исходная операция потока вывода не будет выполняться после того, как печать определит файл, который то есть экран не печатает функцию печати строковой информации.