shutil.rmtreeを使用して特定のディレクトリを削除できるかどうかを調べる検出器を作成しようとしています。私は今部分的に動作する以下のように完成した部分コードを持っています。Python:Windows 7で検出できないディレクトリを検出する
このコードでは、ターゲットフォルダの下にある.exeファイルがまだ実行されているときに警告が表示されるようになりました。しかし、このコードは、フォルダの下にある特定のファイルがエディタによって開かれている場合(これは、ディレクトリを削除できないようにする別の原因です)、まだ警告にフラグを立てることはできません。どんな指導も高く評価されます。事前に感謝します
注:ロックされたファイルを確認するためにopenメソッドを使用しました。
def list_locked_files(dir):
isLocked = False
for name in os.listdir(dir):
uni_name = unicode(name)
fullname = dir + u'/' + uni_name
if os.path.isdir(fullname):
list_locked_files(fullname)
else:
try:
f = open(fullname, 'r+')
f.close()
except IOError:
print fullname + u' is locked!'
isLocked = True
if isLocked is True:
print u'Please close the files/dir above !'
sys.exit(0)
システムファイルdeleteを呼び出して、そのファイルがまだ存在するかどうかを確認するだけです。 (これは冗談ですが、実際にはこれをしないでください:) –
質問タイトルで「検出」ではなく「削除」(両方の時間)を意味しましたか? –
私はあなたの質問を正しく理解している場合、最初に検出することです(これは私が答えを見つけることを望む質問です)。その後、もう一度削除します(これはすでに解決済みです – Daniel