Python:如何接受用户的输入,然后重定向控制台输出

时间:2019-03-04 08:55:59

标签: python-3.x stdout

我有一个用例,其中我的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 :(得分:0)

您可以覆盖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__

重新访问原始providedIn: 'root'