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 回答
0

像这样的东西。我已经 #!'d 到 CPython 3.3,但 2.x 也应该可以工作:

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

import subprocess

test = subprocess.check_output(args=["echo", "171"])
print(test)
于 2013-11-11T20:30:10.257 回答