¿Cómo puedo eliminar un archivo o carpeta en Python?
¿Cómo puedo eliminar un archivo o carpeta en Python?
Utilice uno de estos métodos:
pathlib.Path.unlink()
elimina un archivo o enlace simbólico.pathlib.Path.rmdir()
elimina un directorio vacío.shutil.rmtree()
elimina un directorio y todo su contenido.
En Python 3.3 y versiones anteriores, puedes usar estos métodos en lugar de los pathlib
siguientes:
os.remove()
elimina un archivo.os.unlink()
elimina un enlace simbólico.os.rmdir()
elimina un directorio vacío.
Sintaxis de Python para eliminar un archivo
import os
os.remove("/tmp/<file_name>.txt")
o
import os
os.unlink("/tmp/<file_name>.txt")
o
Biblioteca pathlib para Python versión >= 3.4
file_to_rem = pathlib.Path("/tmp/<file_name>.txt")
file_to_rem.unlink()
Ruta.unlink(missing_ok=False)
Método de desvinculación utilizado para eliminar el archivo o el enlace simbólico.
- Si miss_ok es falso (el valor predeterminado), se genera FileNotFoundError si la ruta no existe.
- Si miss_ok es verdadero, se ignorarán las excepciones FileNotFoundError (mismo comportamiento que el comando POSIX rm -f).
- Modificado en la versión 3.8: se agregó el parámetro Missing_ok.
Mejores prácticas
Primero, verifique si el archivo o carpeta existe y luego elimínelo. Puedes lograr esto de dos maneras:
os.path.isfile("/path/to/file")
- Usar
exception handling.
EJEMPLO paraos.path.isfile
#!/usr/bin/python
import os
myfile = "/tmp/foo.txt"
# If file exists, delete it.
if os.path.isfile(myfile):
os.remove(myfile)
else:
# If it fails, inform the user.
print("Error: %s file not found" % myfile)
Manejo de excepciones
#!/usr/bin/python
import os
# Get input.
myfile = raw_input("Enter file name to delete: ")
# Try to delete the file.
try:
os.remove(myfile)
except OSError as e:
# If it fails, inform the user.
print("Error: %s - %s." % (e.filename, e.strerror))
Salida respectiva
Ingrese el nombre del archivo a eliminar: demo.txt Error: demo.txt: no existe dicho archivo o directorio. Ingrese el nombre del archivo a eliminar: rrr.txt Error: rrr.txt: operación no permitida. Ingrese el nombre del archivo a eliminar: foo.txt
Sintaxis de Python para eliminar una carpeta
shutil.rmtree()
Ejemplo parashutil.rmtree()
#!/usr/bin/python
import os
import sys
import shutil
# Get directory name
mydir = raw_input("Enter directory name: ")
# Try to remove the tree; if it fails, throw an error using try...except.
try:
shutil.rmtree(mydir)
except OSError as e:
print("Error: %s - %s." % (e.filename, e.strerror))
Usar
shutil.rmtree(path[, ignore_errors[, onerror]])
(Ver documentación completa en Shutil ) y/o
os.remove
y
os.rmdir
(Documentación completa en sistema operativo ).