栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

IPython:将Python脚本的输出重定向到文件(如bash>)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IPython:将Python脚本的输出重定向到文件(如bash>)

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

from IPython.utils import iowith io.capture_output() as captured:    %run my_script.pyprint 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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516713.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号