执行python脚本后额外为零

时间:2013-11-11 19:29:28

标签: python python-2.7

我正在尝试从另一个执行python脚本并将输出值存储在变量中。

当我这样做时:

import os

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

然后执行脚本我在结果上得到额外的零:

$ ./test.py
171
0

script1.py确实产生“171”作为输出,但不确定额外的零来自哪里......有什么想法吗?

3 个答案:

答案 0 :(得分:2)

零是命令的返回代码,您将分配给test然后打印。 (零表示没有发生错误。)

如果您不知道它是什么,为什么要打印它?

答案 1 :(得分:2)

这是命令的exit status

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

答案 2 :(得分:0)

像这样的东西。我已经#!'到CPython 3.3,但2.x也应该有效:

#!/usr/local/cpython-3.3/bin/python

import subprocess

test = subprocess.check_output(args=["echo", "171"])
print(test)