python - 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 脚本调用这个脚本的方法时,我注意到了这一点——返回值似乎不正确——这是预期的行为吗?如果是,为什么?
解决方案
推荐阅读
- xml - 仅在根节点添加前缀 NS0
- php - 函数爆炸不适用于“+”字符
- java - 嵌套异常是 java.lang.VerifyError: Bad return type + getProfiler()Lcom/orientechnologies/common/profiler/OProfiler;@4: 转
- angular - 虚拟列表中的反应式表单行为不稳定
- android-gradle-plugin - 为什么 Android Studio 不运行 gradle?
- android - 谷歌地图 - 膨胀 SupportMapFragment 时出错
- java - 为什么仅通过更改 ConcurrentHashMap 中的键值来输出差异
- uml - 混淆的内部和外部用例图
- ios - 通过应用程序注册 Azure B2C Facebook
- java - 为什么我不能使用 SQLITE 在我的数据库中插入新数据?