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 に答える