python堆栈反向输出列表_python - IPython:将Python脚本的输出重定向到文件(如bash>) - 堆栈内存溢出...

IPython有自己的上下文管理器来捕获stdout / err ,但它没有重定向到文件,它重定向到一个对象:

from IPython.utils import io

with io.capture_output() as captured:

%run my_script.py

print captured.stdout # prints stdout from your script

此功能在%%capture cell-magic中公开,如Cell Magics示例笔记本中所示 。

它是一个简单的上下文管理器,因此您可以编写自己的版本来重定向到文件:

class redirect_output(object):

"""context manager for reditrecting stdout/err to files"""

def __init__(self, stdout='', stderr=''):

self.stdout = stdout

self.stderr = stderr

def __enter__(self):

self.sys_stdout = sys.stdout

self.sys_stderr = sys.stderr

if self.stdout:

sys.stdout = open(self.stdout, 'w')

if self.stderr:

if self.stderr == self.stdout:

sys.stderr = sys.stdout

else:

sys.stderr = open(self.stderr, 'w')

def __exit__(self, exc_type, exc_value, traceback):

sys.stdout = self.sys_stdout

sys.stderr = self.sys_stderr

您将调用的:

with redirect_output("my_output.txt"):

%run my_script.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值