Python: как принять ввод от пользователя, а затем перенаправить вывод консоли - PullRequest
0 голосов
/ 04 марта 2019

У меня есть сценарий использования, где мой код Python принимает данные от пользователя, скажем, имя файла, а затем печатает его содержимое в консоли.Я не могу понять, как я могу перенаправить вывод консоли в другой файл output.txt Допустим, если я передам на консоли следующую команду:

python test.py > output.txt

По очевидной причине, контрольполучить перенаправление в буфер файлов и консоль остается пустым и бездействующимМожет кто-нибудь подсказать, как можно использовать такой сценарий использования, чтобы пользовательский ввод запрашивался, а затем весь вывод кода Python перенаправлялся на output.txt

test.py

file_name = input("Enter filename:")
with open(file_name, "r") as f:
    for line in f:
        list_of_words_in_line = line.split()
        print(list_of_words_in_line)
f.close()

Извините, если этот вопрос для кого-то очень простой.

1 Ответ

0 голосов
/ 04 марта 2019

Вы можете перезаписать sys.stdout

import sys 
file_name = input("Enter File Name:")
sys.stdout = open(file_name, "w")
print("HAHAHAHAH")
sys.stdout.close()

Вы можете повторно получить доступ к оригиналу stdout, сбросив его - sys.stdout = sys.__stdout__

...