¿Cómo puedo eliminar un archivo o carpeta en Python?

Resuelto Zygimantas asked hace 13 años • 18 respuestas

¿Cómo puedo eliminar un archivo o carpeta en Python?

Zygimantas avatar Aug 09 '11 20:08 Zygimantas
Aceptado

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 pathlibsiguientes:

  • os.remove()elimina un archivo.

  • os.unlink()elimina un enlace simbólico.

  • os.rmdir()elimina un directorio vacío.

RichieHindle avatar Aug 09 '2011 13:08 RichieHindle

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:

  1. os.path.isfile("/path/to/file")
  2. Usarexception 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))
Anand Tripathi avatar Mar 07 '2017 06:03 Anand Tripathi

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 ).

Mihai Maruseac avatar Aug 09 '2011 13:08 Mihai Maruseac