如何消除使用 python 中的 with 语句创建的文件的 input/output 错误?
How to get rid of input/output error for a file created using with statement in python?
process1.py
import sys
with open("Main.txt", "w+") as sys.stdout:
eval(c)
在此代码中,c 的值已经定义,并且还创建了文本文件,但是当我尝试使用此代码
打印文本文件 Main.txt
时,它引发了此错误 ValueError: I/O operation on closed file.
]
import process1
f = open("Main.txt", "r")
for x in f:
print(x)
我应该怎么做才能让它发挥作用?
我想你想要:
with open("Main.txt", "w+") as file:
with contextlib.redirect_stdout(file):
...
你写的代码直接将新打开的文件赋值给变量sys.stdout
,执行包装代码,然后调用close(sys.stdout)
。但是sys.stdout
的值仍然是关闭的文件。
process1.py
import sys
with open("Main.txt", "w+") as sys.stdout:
eval(c)
在此代码中,c 的值已经定义,并且还创建了文本文件,但是当我尝试使用此代码
打印文本文件Main.txt
时,它引发了此错误 ValueError: I/O operation on closed file.
]
import process1
f = open("Main.txt", "r")
for x in f:
print(x)
我应该怎么做才能让它发挥作用?
我想你想要:
with open("Main.txt", "w+") as file:
with contextlib.redirect_stdout(file):
...
你写的代码直接将新打开的文件赋值给变量sys.stdout
,执行包装代码,然后调用close(sys.stdout)
。但是sys.stdout
的值仍然是关闭的文件。