从子流程发送并接收变量

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

这可能是一个非常简单的问题,但我是python的新手,因此无法弄清楚。

我想做一个非常简单的事情:调用一个子进程,并在开始时向其发送两个变量(例如:G = [0,1]和K = 3),它需要运行。我想从子流程中接收原始脚本中的值列表。

我设法使它运行起来没有任何问题:

    os.system('abaqus cae noGUI=E11_1')

...但是我无法确定发送和接收的值。谁能给我一个建议?

python subprocess communication
1个回答
0
投票

我解决了我的问题。

对于任何看到这一点并且也在像我这样从事abaqus工作的人。要与abaqus脚本进行交互,您需要使用“ abaqus python”模块(而不是“ abaqus CAE”)。通过这样的编码:

    os.system('abaqus python script.py var1 var2')

您将var1和var2(作为字符串)发送到script.py。您可以使用

来访问变量
    v1 = int(sys.argv[1])   (= var1)
    v2 = int(sys.argv[2])   (= var2)

在python.py脚本中,您可以使用以下命令访问.odb:

    odb = openOdb(path+odbname+'.odb')

以及执行所需的任何操作。

我希望这可以帮助遇到相同问题的任何人。

© www.soinside.com 2019 - 2024. All rights reserved.