In Python, quando si esegue shutil.rmtree
su una cartella che contiene un file di sola lettura, la seguente eccezione viene stampato:shutil.rmtree non riesce su Windows con 'Accesso negato'
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 221, in rmtree
onerror(os.remove, fullname, sys.exc_info())
File "C:\Python26\lib\shutil.py", line 219, in rmtree
os.remove(fullname)
WindowsError: [Error 5] Access is denied: 'build\\tcl\\tcl8.5\\msgs\\af.msg'
Guardando in Proprietà file dialogo Ho notato che il file af.msg
è impostato per essere di sola lettura.
Quindi la domanda è: qual è il più semplice soluzione/fix per aggirare questo problema - dato che la mia intenzione è quella di fare un equivalente di rm -rf build/
ma su Windows? (Senza dover utilizzare strumenti di terze parti come UnxUtils o Cygwin - come questo codice è mirato per essere eseguito su un nudo installazione di Windows con Python 2.6 w/installato PyWin32)
'shutil.rmtree' utilizza' os.remove' per rimuovere i file. 'os.remove' rimuove solo i file di sola lettura (almeno su Unix). 'os.remove' non può rimuovere il file su Windows se è in uso. – jfs
possibile duplicato di [Eliminazione directory in Python] (http://stackoverflow.com/questions/1889597/deleting-directory-in-python) – mozzbozz