首页 > 解决方案 > Python 如何使用 subprocess.call 调用另一个 python 脚本并获得正确的返回值

问题描述

如果我有一个脚本'sp_test.py',如下所示:

import sys

def sp_test(a=0,b=0,c=0):

    print(a)
    print(b)
    print(c)

    return str(a)+str(b)+str(c)

if __name__ == "__main__":
    sp_test(sys.argv[1],sys.argv[2],sys.argv[3])

如果我想从另一个 python 脚本调用它,我可以使用:

import sys
import subprocess

subprocess.call([sys.executable, 'sp_test.py', '1','2','3'])

但是我希望输出是:

1
2
3
123

输出实际上是:

1
2
3
0

为什么是这样?

当我尝试从另一个 python 脚本调用这个脚本的方法时,我注意到了这一点——返回值似乎不正确——这是预期的行为吗?如果是,为什么?

标签: pythonsubprocesssys

解决方案


推荐阅读