使用 Python 2.7,我有一个执行子进程脚本的主脚本。我的问题是如何从 subprocess 捕获某些变量,例如向量:
vec_1, vec_2, vec_3
我知道可以使用 来stdout
从脚本中获取字符矩阵subprocess.communicate()
,但这不符合我的预期目的。这是我到目前为止所尝试的。
父脚本:
import subprocess
if __name__ == "__main__":
process = subprocess.Popen(["abaqus", "python", "childscript.py", \
"file"], shell=True, stdout=subprocess.PIPE)
process.wait()
pr = process.communicate()
子子进程:
def function(a):
return vec_1, vec_2, vec_3
if __name__ == '__main__':
function()
如果有人知道如何在不使用 shell=True 的情况下执行子进程,则奖励标记。似乎只有 shell 才有可能,因为它涉及执行 .bat 文件。
编辑
澄清为什么我不直接将函数导入主脚本:
在子进程中执行的程序,Abaqus 有它自己的 python 接口,它允许使用 python 脚本来访问它的数据输出。因此,python脚本应该通过程序运行,不能集成到main中。