私がやりたいことは、ファイルが存在するかどうかを確認し、存在しない場合はアクションを実行し、ファイルが存在するまでもう一度確認してから、コードが他の操作を続行することです。
6390 次
2 に答える
4
簡単にするために、安全のためにタイムアウトを使用して、小さなポーリング関数を実装します。
def open_file(path_to_file, attempts=0, timeout=5, sleep_int=5):
if attempts < timeout and os.path.exists(path_to_file) and os.path.isfile(path_to_file):
try:
file = open(path_to_file)
return file
except:
# perform an action
sleep(sleep_int)
open_file(path_to_file, attempts + 1)
Python 組み込みのpollingの使用も検討します。これは、ファイル記述子の I/O イベントを追跡/報告するためです。
于 2013-01-18T18:00:34.193 に答える
1
Linux を使用していると仮定すると、次のようになります。
ファイルが存在するかどうかを確認するために何らかの種類のループを本当に回避したい場合、およびファイルがある時点で作成されることが確実であり、ファイルが作成されるディレクトリを知っている場合は、pynotifyを使用して親ディレクトリへの変更を追跡できます。 . 何かが変更されたときに通知され、作成する必要があるファイルであるかどうかを検出できます。
ただし、ニーズによっては、価値があるよりも面倒な場合があります。その場合、カイルのソリューションのような小さなポーリング機能をお勧めします。
于 2013-01-18T17:54:16.770 に答える