0

在蟒蛇中,

os.exec..命令替换当前进程。例如以下脚本

import os, time

print 'before calling'
os.execv('test.py', ['test.py'])
print 'after calling'

不会打印“调用后”

commands.getoutput将输出作为字符串返回。
我想逐行实时打印输出,因为我的其他可执行文件需要很长时间并且在标准输出上打印了很多。

我如何实现这一目标?

4

2 回答 2

3

尝试这个:

import subprocess

print 'before calling'
subprocess.call(["python", "test.py"])
print 'after calling'

test.py在哪里

print "hello!"

输出:

before calling
hello!
after calling
于 2012-09-06T11:39:01.970 回答
0

关于什么:

print 'before'
import test
print 'after'

看看execfile

这不会使您的模块命名空间混乱,并且可以满足您的要求。

我不知道您为什么需要这样做,但是您是否考虑过在您调用的其他文件中提供函数?为什么需要直接执行文件?

于 2012-09-06T11:48:38.610 回答