python 调用的 bash 命令与终端中的用户输入之间的差异

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

我遇到了一个奇怪的问题。我会尽量说得清楚。

基本上,我正在尝试自动化一项可以通过终端中的命令执行的任务,但使用 python。

当我通过终端执行此操作时,基本步骤是通过 bash 命令启动模拟(通过 OpenFOAM,但这不是这里的问题),然后通过修改文本文件并保存来停止模拟。

为了自动化该任务,我创建了两个 python 函数。 第一个只是使用 subprocess.Popen 调用我手动使用的相同命令。 第二个只是修改文件来停止模拟。

当我用手做时,效果很好。 但是当我用 python 执行此操作时,即使文件确实被修改,解决方案也不会停止。

故障排除后,我注意到当我手动启动命令并让 python 函数停止模拟(修改文本文件)时,它可以工作。 但反之则不然。如果我通过 subprocess.Popen 启动模拟,然后手动修改文件,它不会停止。所以问题似乎是从那一方面产生的。

知道为什么会发生这样的事情吗?谢谢!

python automation subprocess
1个回答
0
投票

当您使用Python启动模拟时,请确保等待它完全启动,然后再尝试通过修改文件来停止它。时机在这里很重要;更改文件应该在模拟启动并运行后进行。这可能需要检查模拟的状态或添加暂停以确保文件更改在正确的时间发生。

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