我正在尝试从另一个执行python脚本并将输出值存储在变量中。
当我这样做时:
import os
test = os.system("/usr/local/bin/script1.py")
print test;
然后执行脚本我在结果上得到额外的零:
$ ./test.py
171
0
script1.py确实产生“171”作为输出,但不确定额外的零来自哪里......有什么想法吗?
答案 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)