Python如何使用subprocess.call调用另一个python脚本并获取正确的返回值

问题描述 投票:0回答:1

如果我有如下脚本'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脚本调用此脚本的方法时注意到了这一点-返回值似乎不正确-这是预期的行为吗?如果是,为什么?

python subprocess sys
1个回答
0
投票

似乎您根本不​​打印最后一个值如果要打印,则需要更改此功能:

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

    print(a)
    print(b)
    print(c)
    values = str(a)+str(b)+str(c)
    print(values)
    return values
© www.soinside.com 2019 - 2024. All rights reserved.