怎么保存python控制台的代码_如何从python控制台存储实时输出?

我想创建一个函数来执行python脚本,同时在执行时实时存储控制台输出。在

例如,我使用subprocess模块来运行示例.py,但我只在整个脚本运行后接收控制台输出,而不是在发生时获取控制台输出。在控制台上输入“再见”,然后在控制台上按“再见”等60秒输出

在示例.py在import time

print "hello world!"

time.sleep(60)

print "goodbye world"

下面是运行脚本的脚本示例.py并在之后存储控制台

^{pr2}$

这将在整个脚本执行后以字符串形式返回以下内容hello world!

goodbye world

注意:我不能更改python脚本示例.py. 我只能更改调用它的函数。在

除了实时获取控制台输出(如果可能的话),我还想获取导致控制台输出的python行。例如,我想实现以下目标import time

print "hello world!"

hello world

time.sleep(60)

print "goodbye world"

goodbye world

我也尝试过使用sys模块,但它不存储控制台输出:import sys

import inspect

class SetTrace(object):

def __init__(self, func):

self.func = func

def __enter__(self):

sys.settrace(self.func)

return self

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

sys.settrace(None)

def monitor(frame, event, arg):

if event == "line":

print event

return monitor

with SetTrace(monitor):

exec(open('example.py',"r+").read())

这将返回下面的结果,并且它是实时的。在line

line

line

hello world!

line

line

goodbye world

line

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值