【发布时间】:2018-02-03 20:48:48
【问题描述】:
我有一个非常初级的问题。我正在尝试执行以下操作,我需要使用 subprocess 从另一个 Python 脚本获取列表。
1 级:
#!/usr/bin/python
import sys
import os
def run(a):
print "running"
return a
#if __name__ == "__main__":
run(str(sys.argv[1]))
0 级:
import sys
import os
import subprocess
output = subprocess.check_output(['python','level1.py','test'])
print output
但是,当我运行它时,输出会打印出“正在运行”,而不是存储在变量 a 中的值。
我想知道如何获取 a 的值而不是所有 print 语句。
【问题讨论】:
-
退出状态是一个 7 位整数。您不想尝试将其用于任意返回值。打印到标准输出并捕获标准输出是正确的。如果“正在运行”是一条日志消息,而不是输出,则应将其打印到 stderr 以使其保持在带外。
-
就像查尔斯说的那样,用“print a”替换你的“return a”,你应该会很好。您还想删除“打印运行”语句,因为那不是您要捕获的内容
-
感谢大家的回复。我会试一试。
-
既然您注释掉了
if __name__语句,那么缩进规则说您对run()的调用将成为函数的一部分,并且不会执行任何操作(因为您之前有一个return它)。
标签: python linux return subprocess stdout