【发布时间】:2018-09-22 00:39:57
【问题描述】:
我正在尝试将 python 脚本的 STDOUT 重定向到文件。
如果 STDOUT 是 从 sys 导入的,则脚本的输出不会不会被重定向到文件:
from sys import stdout
stdout = open("text", "w")
print("Hello")
但是,如果我导入 only sys 并使用 sys.stdout,脚本的输出会成功重定向:
import sys
sys.stdout = open("text", "w")
print("Hello")
这是为什么?根据this answer,“import X”和“from X import Y”之间的唯一区别是绑定的名称。这如何影响标准输出?
【问题讨论】:
-
我认为首先,您正在重新定义整个模块。第二,您正在重新分配
sys模块中的引用 -
@cricket_007 不,他没有重新定义整个模块。
-
@abarnert 我的意思是局部变量
标签: python stdout python-import sys