def f(x) :
....do something..
....many print statements....
quit()
a = Process(target=f, args=1)
a.start()
....main process also has many print statement....
如何在不关闭main函数的stdout的情况下,关闭新衍生函数f的所有print语句和error语句?此外,我是否可以将所有子函数的输出实时指向一个特定的文件(即,不存储在缓冲区中,然后保存,因为如果程序崩溃,缓冲区可能会丢失)?
1条答案
按热度按时间nhaq1z211#
我建议使用
redirect_stdout
和redirect_stderr
库,以便重定向子进程中运行的函数的所有输出。首先,创建一个装饰器工厂redirect_output
,然后将其应用于目标函数,传递一个filename
作为它的参数,其中您希望stdout和stderr被重定向到该工厂。下面是一个完整的工作示例: