我正在尝试从另一个执行 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
如果要将命令的输出存储在变量中,最好这样做。
像这样的东西。我已经 #!'d 到 CPython 3.3,但 2.x 也应该可以工作:
#!/usr/local/cpython-3.3/bin/python
import subprocess
test = subprocess.check_output(args=["echo", "171"])
print(test)