私はpythonラッパースクリプトを作成していますが、それを作成する良い方法は何だろうと思っていました.
コードを連続して実行したい。例えば:
ステップ 1. 同じプログラムを実行します (並列 - 並列化は簡単です。なぜなら、私は LSF システムで作業しているので、3 つの異なるジョブをサブミットするだけだからです)。
プログラムを並行して実行すると、実行ごとに 1 つの fin.txt が取り込まれ、1 つの fout.txt が出力されます。つまり、すべて実行すると、3 つの入力ファイル f1in.txt、f2in.txt、f3in から 3 つの出力ファイルが生成されます。 txt、f1out.txt、f2out.txt、f3out.txt。
(LSF システムで) プログラムの各実行が正常に完了すると、ログ ファイル出力 f1log.out、f2log.out、f3log.out が生成されます。
ログ ファイルの出力はこの形式です。つまり、正常に実行された場合、f1log.out は次のようになります。
------------------------------------------------------------
# LSBATCH: User input
------------------------------------------------------------
Successfully completed.
Resource usage summary:
CPU time : 86.20 sec.
Max Memory : 103 MB
Max Swap : 881 MB
Max Processes : 4
Max Threads : 5
The output (if any) is above this job summary.
したがって、ログファイルが作成されているかどうかを各実行(1、2、3)で(5分ごとに)チェックするラッパーが必要です。ログファイルが作成されている場合は、ラッパーが正常に完了しました (ログ ファイルに正常に完了した文字列が表示された場合)。
また、実行の 1 つが完了し、正常に完了しなかったログ ファイルが生成された場合、ラッパーを終了して、実行 (k=1,2,3) が完了しなかったことを報告します。
その後、
ステップ2。3 回の実行がすべて正常に完了した場合は、これら 3 つのファイルを入力として受け取る別のプログラムを実行します。それ以外の場合は、エラーを出力します。
基本的に私の質問では、次の 2 つのことを探しています。
ラッパーを書く良い方法のように思えますか?
どのようにPythonでファイルの存在を確認し、一定時間ごとにパターンを良い方法で検索できますか?
ノート。LSF にはジョブの依存関係があることは承知していますが、最適ではないかもしれませんが、この方法の方が明確で使いやすいと思います。