Перенаправить вывод печати в файл в Python

  1. Используйте функцию write() для вывода вывода в файл в Python
  2. Используйте функцию print() для вывода вывода в файл в Python
  3. Используйте sys.stdout для вывода вывода в файл на Python
  4. Используйте функцию contextlib.redirect_stdout() для вывода вывода в файл в Python

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

В этом руководстве мы увидим некоторые методы перенаправления вывода в файл на Python.

Используйте функцию write() для вывода вывода в файл в Python

Это встроенная функция Python, которая помогает в написании или добавлении указанного текста в файл. w и a - это 2 операции в этой функции, которые будут писать или добавлять любой текст в файл. w используется, когда пользователь хочет очистить файл перед записью в него чего-либо. В то время как a используется, когда пользователь просто хочет добавить текст к существующему тексту в файле.

Пример:

with open("randomfile.txt", "a") as o:
    o.write('Hello')
    o.write('This text will be added to the file')

Обратите внимание, что здесь используется функция open() для открытия файла. a в коде означает, что текст добавлен в файл.

Используйте функцию print() для вывода вывода в файл в Python

В этом методе сначала мы вызываем функцию open(), чтобы открыть желаемый файл. После этого используется функция print() для печати текста в файле. Пользователь всегда выбирает, использовать ли оператор w или a.

Пример:

with open("randomfile.txt", "w") as external_file:
    add_text = "This text will be added to the file"
    print(add_text, file=external_file)
    external_file.close()

Обратите внимание, что функция close() также используется для закрытия файла в приведенном выше коде после его открытия с помощью open(). После вызова функции close() файл нельзя прочитать и больше ничего нельзя будет записать. Если пользователь попытается внести какие-либо изменения в файл после вызова функции close(), возникнет ошибка.

Используйте sys.stdout для вывода вывода в файл на Python

Модуль sys - это встроенный модуль Python, который используется пользователем для работы с различными частями среды выполнения в Python. Чтобы использовать sys.stdout, сначала необходимо импортировать модуль sys.

sys.stdout используется, когда пользователь хочет вывести вывод непосредственно на главную консоль экрана. Форма вывода может быть различной, например, это может быть приглашение для ввода, оператор печати или просто выражение. В этом методе мы будем печатать оператор в текстовом файле.

Пример:

import sys
 
file_path = 'randomfile.txt'
sys.stdout = open(file_path, "w")
print("This text will be added to the file")

Обратите внимание, что перед использованием sys.stdout в качестве объекта для открытия и печати оператора в текстовом файле, пользователь должен указать определенный путь к файлу, в противном случае ни одна из операций не может быть выполнена с файлом.

Используйте функцию contextlib.redirect_stdout() для вывода вывода в файл в Python

Модуль contextlib обычно используется с оператором with.

Функция contextlib.redirect_stdout() помогает перенаправить sys.stdout в какой-либо файл на временной основе путем настройки диспетчера контекста.

Пример:

import contextlib
 
file_path = 'randomfile.txt'
with open(file_path, "w") as o:
    with contextlib.redirect_stdout(o):
        print("This text will be added to the file")

Как видите, оператор with используется с операциями модуля contextlib.

Сопутствующая статья - Python Print

  • Как распечатать несколько аргументов на Python
  • Печатать значения без пробелов между ними в Python