Redirecionar a saída de impressão para um arquivo em Python

Lakshay Kapoor 30 janeiro 2023
  1. Use a função write() para imprimir a saída para um arquivo em Python
  2. Use a função print() para imprimir a saída para um arquivo em Python
  3. Use sys.stdout para imprimir a saída para um arquivo em Python
  4. Use a função contextlib.redirect_stdout() para imprimir a saída para um arquivo em Python
Redirecionar a saída de impressão para um arquivo em Python

Existe mais um tipo de tarefa no manuseio de arquivos que pode ser realizada usando python, ou seja, redirecionar a saída para um arquivo externo. Basicamente, uma saída padrão pode ser impressa em um arquivo escolhido pelo próprio usuário. Existem muitas maneiras de fazer isso.

Neste tutorial, veremos alguns métodos para redirecionar a saída para um arquivo em Python.

Use a função write() para imprimir a saída para um arquivo em Python

Esta é uma função Python embutida que ajuda a escrever ou adicionar um texto especificado em um arquivo. w e a são as 2 operações nesta função que irão escrever ou adicionar qualquer texto em um arquivo. w é usado quando o usuário deseja esvaziar o arquivo antes de escrever qualquer coisa nele. Considerando que a é usado quando o usuário deseja apenas adicionar algum texto ao texto existente no arquivo.

Exemplo:

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

Observe que a função open() é usada aqui para abrir o arquivo. a no código indica que o texto foi adicionado ao arquivo.

Use a função print() para imprimir a saída para um arquivo em Python

Neste método, primeiro chamamos a função open() para abrir o arquivo desejado. Depois disso, a função print() é usada para imprimir o texto no arquivo. É sempre a escolha do usuário usar o operador w ou o operador a.

Exemplo:

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()

Observe que a função close() também é usada para fechar o arquivo no código acima após abri-lo com open(). Depois de chamar a função close(), o arquivo não pode ser lido e nada mais pode ser escrito. Se o usuário tentar fazer qualquer alteração no arquivo após chamar a função close(), um erro será gerado.

Use sys.stdout para imprimir a saída para um arquivo em Python

O módulo sys é um módulo Python embutido que é usado pelo usuário para lidar com várias partes do ambiente de execução em Python. Para usar o sys.stdout, o módulo sys deve ser importado primeiro.

sys.stdout é usado quando o usuário deseja exibir a saída diretamente no console principal da tela. A forma da saída pode ser variada, por exemplo, pode ser um prompt de entrada, uma instrução de impressão ou apenas uma expressão. Neste método, imprimiremos uma declaração em um arquivo de texto.

Exemplo:

import sys

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

Observe que antes de usar sys.stdout como um objeto para abrir e imprimir a instrução no arquivo de texto, um caminho definitivo do arquivo deve ser definido pelo usuário, caso contrário, nenhuma das operações pode ser executada no arquivo.

Use a função contextlib.redirect_stdout() para imprimir a saída para um arquivo em Python

O módulo contextlib geralmente é usado com a instrução with.

A função contextlib.redirect_stdout() ajuda a redirecionar o sys.stdout para algum arquivo temporariamente configurando um gerenciador de contexto.

Exemplo:

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")

Como você pode ver, a instrução with é usada com as operações do módulo contextlib.

Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

Artigo relacionado - Python Print