私はのコードを探していますが、ファイルシステム内のファイルが利用可能かどうかをチェックします。(他のプロセスでは使用されていません)。どのように私はPythonでそれを行うことができますか?ありがとう!Pythonでファイルが利用可能かどうかチェックする
私はどのように使用するのですか:ファイルが利用可能かどうかを確認し、利用可能な場合は(プロセスはそれ以上必要ない)削除してください。
私はのコードを探していますが、ファイルシステム内のファイルが利用可能かどうかをチェックします。(他のプロセスでは使用されていません)。どのように私はPythonでそれを行うことができますか?ありがとう!Pythonでファイルが利用可能かどうかチェックする
私はどのように使用するのですか:ファイルが利用可能かどうかを確認し、利用可能な場合は(プロセスはそれ以上必要ない)削除してください。
while True:
try:
os.remove(yourfilename) # try to remove it directly
except OSError as e:
if e.errno == errno.ENOENT: # file doesn't exist
break
time.sleep(5)
else:
break
+1。厄介な問題への厄介な解決策。もちろん、これはファイル*が* locked/non-deletableであると仮定しています。ファイルの削除が「ファイルが処理された」ことを意味する場合は、whoops!私はそれ以上のことを私が跳ぶことはできないだろう。 –
ファイル他のプロセスがファイルを開いているし、あなたがそれを削除すると、すべてのプロセスがそれに自分のハンドルを閉じるまで、それはファイルシステムから削除されることはありません。
他のプロセスがファイルハンドル/オブジェクトを処理する必要がある場合は、ファイルを安全に削除することができますが、プロセスがハンドルを閉じると削除されます。プロセスが終了するまでファイルに対してopen()を呼び出せるようにするには、両方のプロセスがロックを使用する必要があります(fcntl.flock()を参照)。
プロセスAとプロセスBはファイルを使用している間ロックし、プロセスCはファイルを削除してA&Bの両方が完了したことを知るためにポーリングする予定ですか?これは競合状態になっています。プロセスAが終了し、ファイルが解放され、次にCがタイムスライスされ、ファイルが削除され、Bがタイムスライスされ、ファイルを使用してブームになります。 – mtrw
@mtrw良い点です。しかし、私の場合はそれほど複雑ではありません。ファイルを使用するプロセスは1つだけです。 – bluish