我正在做Marco Buttu的"Python编程:完成向导"中的例子。
目标是临时更改sys.stdout
以避免向print()传递参数
>>> import sys
>>> sys.stdout = open('myfile.log', 'w')
>>> print('escribo en el archivo log...')
>>> print('todavia en el archivo log...')
>>> sys.stdout.close()
>>> open('myfile.log').read()
我得到了这个错误。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file.
有人能给我解释一下为什么会这样吗?
是由于版本不同而出现的一些错误(图书版本:3.4,实际版本:第3.6.5节)
我会寻找你的答案。
先谢谢你了。
1条答案
按热度按时间eufgjt7s1#
您一直在用文件句柄覆盖
sys.stdout
。由于print()尝试写入sys.stdout
,因此将失败。您应该重置它。这将工作: