script remove into from files another python python-2.7 shutil

remove - shutil python 3



clarificación de shutil.rmtree() (3)

He leído el documento sobre esta función, sin embargo, no creo que esté entendiendo esto correctamente, y si alguien puede decirme qué estoy pensando mal, o si estoy en lo cierto, sería de gran ayuda. Aquí está mi entendimiento:

utilizando la función shutil.rmtree(path) , eliminará solo el directorio especificado, no la ruta completa. ES DECIR:

shutil.rmtree(''user/tester/noob'')

usando esto, solo eliminaría el directorio ''noob'' correcto? no es el camino completo?


Esto definitivamente solo eliminará el último directorio en la ruta especificada. Solo pruébalo:

mkdir -p foo/bar python import shutil shutil.rmtree(''foo/bar'')

... solo eliminará ''bar'' .


Hay algunos malentendidos aquí.

Imagina un árbol como este:

- user - tester - noob - developer - guru

Si desea eliminar user , simplemente haga shutil.rmtree(''user'') . Esto también eliminará user/tester y user/tester/noob ya que están dentro del user . Sin embargo, también eliminará user/developer y user/developer/guru , ya que también están dentro del user .

Si rmtree(''user/tester/noob'') eliminaría el user y el tester , ¿cómo quiere decir que el user/developer existiría si el user se hubiera ido?

¿O te refieres a algo como http://docs.python.org/2/library/os.html#os.removedirs ?

Intenta eliminar el elemento primario de cada directorio eliminado hasta que falla porque el directorio no está vacío. Por lo tanto, en mi árbol de ejemplo, os.removedirs(''user/tester/noob'') eliminaría el primer noob , luego trataría de eliminar el tester , lo cual está bien porque está vacío, pero se detendría en el user y lo dejaría en paz, porque contiene developer , que no queremos eliminar.


Si noob es un directorio, la función shutil.rmtree() eliminará noob y todos los archivos y subdirectorios debajo de él. Es decir, noob es la raíz del árbol que se eliminará.