1

別の Python スクリプトを実行し、出力値を変数に格納しようとしています。

私がこれを行うとき:

import os

test = os.system("/usr/local/bin/script1.py")
print test;

次に、スクリプトを実行すると、結果に余分なゼロが表示されます。

$ ./test.py
171
0

script1.py は出力として「171」を生成しますが、余分なゼロがどこから来ているのかわかりません...何かアイデアはありますか?

4

3 に答える 3

2

ゼロはコマンドからの戻りコードで、割り当ててから出力しますtest。(ゼロはエラーが発生しなかったことを意味します。)

それが何であるかわからない場合、なぜそれを印刷しているのですか?

于 2013-11-11T19:31:27.803 に答える
2

これがコマンドの終了ステータスです。

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います。

于 2013-11-11T19:31:35.677 に答える