En Python, cuando se ejecuta shutil.rmtree
sobre una carpeta que contiene un archivo de sólo lectura, la siguiente excepción se imprime:shutil.rmtree falla en Windows con 'Acceso denegado'
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'
buscando en las propiedades del archivo de diálogo Noté que el archivo af.msg
está configurado para ser de solo lectura.
Así que la pregunta es: ¿cuál es el más simple solución/solución para evitar este problema - ya que mi intención es hacer un equivalente de rm -rf build/
pero en Windows? (Sin tener que utilizar herramientas de terceros como UnxUtils o cygwin - ya que este código está dirigido para ser ejecutado en un Windows desnudos instalar con Python 2.6 w/instalado pywin32)
'shutil.rmtree' utiliza' os.remove' para eliminar archivos. 'os.remove' elimina muy bien los archivos de solo lectura (al menos en Unix). 'os.remove' no puede eliminar el archivo en Windows si está en uso. – jfs
posible duplicado de [Eliminación de directorio en Python] (http://stackoverflow.com/questions/1889597/deleting-directory-in-python) – mozzbozz