Я запускаю симуляцию Nastran через Python.
nastran=subprocess.run([nastrandir,fn,"parallel = 4","old=no",outputarg])
Эти симуляции обычно выполняются довольно долго без обратной связи, поэтому я пытаюсь автоматизировать чтение выходного файла для соответствующих данных и его печать.
Для этого мне нужно запустить некоторый код во время выполнения подпроцесса.Тем не менее, это не похоже на работу.В качестве простого теста я написал этот код под командой subprocess
:
while nastran.poll() is None:
print("Still working \r")
time.sleep(delay)
print("Still working. \r")
time.sleep(delay)
print("Still working.. \r")
time.sleep(delay)
print("Still working...\r")
time.sleep(delay)
К сожалению, кажется, что код застревает в команде subprocess
и ожидает ее завершения, после чего nastran
становится классом CompletedProcess
и больше не может быть опрошен, что является ошибкой, которую я получаю.
Есть идеи о том, как заставить Python правильно опрашивать мой подпроцесс Nastran?