0

次のようなPythonコードがあります。

    os.system("...../abc.bat")
    open("test.txt")
    .....

実行が完了すると abc.bat が test.txt を作成する場所。ここでの問題は、ここに「待機」がないため、コードが直接 open("file.txt") に移動し、当然それが見つからないため、問題が発生することです。

バットの実行が終了し、Python が open("test.txt") に移動できるようになった場合、ステータスを確認する方法はありますか?

注: 私は、bat ファイルに command-type nul>run.ind が含まれているという考えを使用しました。このファイルは、bat 実行が終了したことを示す指標として、最後に bat ファイルによって削除されます。次のようなpythonコードでこれを何とか利用できますか:

    os.system("...../abc.bat")
    if file run.ind exists == false:
        open ("test.txt")

これはやや粗雑なようです。これをより簡単な方法で行う他の方法はありますか?または言い換えれば、バットランが終了するまで「待機」を導入することは可能ですか?

4

4 に答える 4

1

while ループに入れてみるのもいいかもしれません。

import os
import time

os.system("...../abc.bat")

while True:
    try:
        o = open("test.txt", "r")
        break
    except:
        print "waiting the bat.."
        time.sleep(15) # Modify (seconds) to se sufficient with your bat to be ready
        continue
于 2013-08-07T11:31:03.300 に答える
0

ループを作成し、ループ内でテキスト ファイルの名前を (それ自体に) 変更しようとすることができます。これは、テキスト ファイルが完了したときにのみ成功します。

于 2015-02-08T03:30:06.477 に答える