2010-12-20 27 views
1

pythonスクリプト( "main.py")の中から、サブプロセスモジュールを使って別のスクリプト( "sub_script.py")を実行しています。サブプロセスを使用してスクリプト出力をファイルに出力しますか?

ここで「実行」「sub_script.py」という「main.py」スクリプトのコードです:これは限り「sub_script.py」は、任意の「印刷」を持っていないと正常に動作

subprocess.Popen([sys.executable, "sub_script.py"]) 

は、その中のステートメント

"sub_script.py"のすべての出力を外部ファイル( "log.txt")に転送します。

どうすればよいですか?

+3

「import sub_script」だけでなく、なぜこのすべての余分なサブプロセスビジネスですか? –

+0

私はCronを使って "main.py"を実行しています - それで、私はサブプロセスを使うのに役立ちます。 – user3262424

+0

'import'とサブプロセスの起動は根本的に異なるものです。まず、 'if __name__ =" __main __ ":'ブロックを使用すると、スクリプトはインポートでは実行されません(ここで必要な出力を転送するのに問題があります)、メインスクリプトが待機する必要があります添え字が終わるために。また、一般的なケースではスクリプトを実際にインポートすることはできません(Pythonパスに.pyファイルであることが保証されていないため)。 –

答えて

2
subprocess.Popen([sys.executable, "sub_script.py"], stdout=open("log.txt", "a")) 
関連する問題