Comment supprimer un fichier ou un dossier ?
Os.rmdir() sous Windows supprime également le lien symbolique du répertoire même si le répertoire cible n'est pas vide.
os.remove()
supprime un fichier.
os.rmdir()
supprime un répertoire vide.
shutil.rmtree()
supprime un répertoire et tout son contenu.
Path
à partir de la version Python 3.4+. pathlib
expose également ces méthodes d'instance :
pathlib.Path.unlink()
supprime un fichier ou un lien symbolique.
pathlib.Path.rmdir()
supprime un répertoire vide.
Os.rmdir() sous Windows supprime également le lien symbolique du répertoire même si le répertoire cible n'est pas vide.
Si le fichier n'existe pas, os.remove()
lève une exception, il peut donc être nécessaire de vérifier que l'option os.path.isfile()
d'abord, ou envelopper dans un try
.
J'aimerais que Path.unlink 1/ soit récursif 2/ ajoute une option pour ignorer FileNotfoundError.
import os
os.remove("/tmp/<file_name>.txt")
Ou
import os
os.unlink("/tmp/<file_name>.txt")
Ou
pathlib Bibliothèque pour Python version >= 3.4
file_to_rem = pathlib.Path("/tmp/<file_name>.txt")
file_to_rem.unlink()
Méthode de déliaison utilisée pour supprimer le fichier ou le lien symbolik.
Si missing_ok est false (la valeur par défaut), FileNotFoundError est soulevé si le chemin n'existe pas.
Si missing_ok est vrai, les exceptions FileNotFoundError seront ignorées (même comportement que la commande POSIX rm -f).
Modifié dans la version 3.8 : Le paramètre missing_ok a été ajouté.
os.path.isfile("/path/to/file")
exception handling.
EXEMPLE para os.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: ## Show an error ##
print("Error: %s file not found" % myfile)
#!/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 failed, report it back to the user ##
print ("Error: %s - %s." % (e.filename, e.strerror))
Enter file name to delete : demo.txt
Error: demo.txt - No such file or directory.
Enter file name to delete : rrr.txt
Error: rrr.txt - Operation not permitted.
Enter file name to delete : foo.txt
shutil.rmtree()
Exemple pour shutil.rmtree()
#!/usr/bin/python
import os
import sys
import shutil
# Get directory name
mydir= raw_input("Enter directory name: ")
## Try to remove tree; if failed show an error using try...except on screen
try:
shutil.rmtree(mydir)
except OSError as e:
print ("Error: %s - %s." % (e.filename, e.strerror))
Le traitement des exceptions est recommandé plutôt que la vérification car le fichier pourrait être supprimé ou modifié entre les deux lignes (TOCTOU : fr.wikipedia.org/wiki/Time_of_check_to_time_of_use ) Voir la FAQ Python docs.python.org/3/glossary.html#term-eafp
Voici une fonction robuste qui utilise les deux os.remove
y shutil.rmtree
:
def remove(path):
""" param <path> could either be relative or absolute. """
if os.path.isfile(path) or os.path.islink(path):
os.remove(path) # remove the file
elif os.path.isdir(path):
shutil.rmtree(path) # remove dir and all contains
else:
raise ValueError("file {} is not a file or dir.".format(path))
Il existe plusieurs façons de supprimer un fichier en Python, mais les meilleures sont les suivantes :
import os
os.remove("test_file.txt")
print("File removed successfully")
import os
#checking if file exist or not
if(os.path.isfile("test.txt")):
#os.remove() function to remove the file
os.remove("test.txt")
#Printing the confirmation message of deletion
print("File Deleted successfully")
else:
print("File does not exist")
#Showing the message instead of throwig an error
import os
from os import listdir
my_path = 'C:\Python Pool\Test\'
for file_name in listdir(my_path):
if file_name.endswith('.txt'):
os.remove(my_path + file_name)
Pour supprimer tous les fichiers d'un répertoire particulier, il suffit d'utiliser le symbole * comme chaîne de caractères. #Importation des modules os et glob import os, glob #Loop Through the folder projects all files and deleting them one by one for file in glob.glob("pythonpool/*") : os.remove(file) print("Supprimé " + str(file))
os.unlink() est un alias ou un autre nom de os.remove() . Comme dans le système d'exploitation Unix, remove est également connu sous le nom de unlink. Note : Toutes les fonctionnalités et la syntaxe sont les mêmes pour os.unlink() et os.remove(). Ces deux méthodes sont utilisées pour supprimer le chemin d'accès au fichier Python. Ce sont toutes deux des méthodes du module os des bibliothèques standard de Python qui exécutent la fonction de suppression.
import shutil
import os
# location
location = "E:/Projects/PythonPool/"
# directory
dir = "Test"
# path
path = os.path.join(location, dir)
# removing directory
shutil.rmtree(path)
import shutil
import os
location = "E:/Projects/PythonPool/"
dir = "Test"
path = os.path.join(location, dir)
shutil.rmtree(path)
Le module Pathlib fournit différentes façons d'interagir avec vos fichiers. Rmdir est l'une des fonctions de Pathlib qui vous permet de supprimer un dossier vide. Tout d'abord, vous devez sélectionner la fonction Path() pour le répertoire, puis l'appel de la méthode rmdir() vérifiera la taille du dossier. S'il est vide, il le supprimera.
C'est un bon moyen de supprimer des dossiers vides sans craindre de perdre des données réelles.
from pathlib import Path
q = Path('foldername')
q.rmdir()
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.