別の Python スクリプトを実行し、出力値を変数に格納しようとしています。
私がこれを行うとき:
import os
test = os.system("/usr/local/bin/script1.py")
print test;
次に、スクリプトを実行すると、結果に余分なゼロが表示されます。
$ ./test.py
171
0
script1.py は出力として「171」を生成しますが、余分なゼロがどこから来ているのかわかりません...何かアイデアはありますか?
別の Python スクリプトを実行し、出力値を変数に格納しようとしています。
私がこれを行うとき:
import os
test = os.system("/usr/local/bin/script1.py")
print test;
次に、スクリプトを実行すると、結果に余分なゼロが表示されます。
$ ./test.py
171
0
script1.py は出力として「171」を生成しますが、余分なゼロがどこから来ているのかわかりません...何かアイデアはありますか?
ゼロはコマンドからの戻りコードで、割り当ててから出力しますtest
。(ゼロはエラーが発生しなかったことを意味します。)
それが何であるかわからない場合、なぜそれを印刷しているのですか?
これがコマンドの終了ステータスです。
help(os.system)
:
system(...)
system(command) -> exit_status
Execute the command (a string) in a subshell.
Unix では、戻り値は、wait() に指定された形式でエンコードされたプロセスの終了ステータスです。POSIX は C の system() 関数の戻り値の意味を規定していないため、Python 関数の戻り値はシステムに依存することに注意してください。
コマンドの出力を変数に格納する場合は、この方が適してsubprocess.check_output
います。