Python を使用して Nastran シミュレーションを実行しています。
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 サブプロセスを適切にポーリングする方法について何か考えはありますか?