Maison  >  Article  >  développement back-end  >  Expliquer plusieurs méthodes de suppression de fichiers en Python

Expliquer plusieurs méthodes de suppression de fichiers en Python

coldplay.xixi
coldplay.xixiavant
2021-03-17 10:19:2745492parcourir

Expliquer plusieurs méthodes de suppression de fichiers en Python

Souvent, les développeurs doivent supprimer des fichiers. Peut-être qu'il a créé le fichier par erreur ou que le fichier n'est plus nécessaire. Quelle que soit la raison, il existe des moyens de supprimer des fichiers via Python sans avoir à rechercher manuellement le fichier et à interagir avec l'interface utilisateur pour le supprimer.

(Recommandation d'apprentissage gratuite : Tutoriel vidéo Python)

Il existe de nombreuses façons de supprimer des fichiers à l'aide de Python, mais la meilleure méthode est la suivante :

  • os.remove()Supprimer le fichier

  • os.unlink()Supprimer le fichier. C'est le nom Unix de la méthode remove().

  • shutil.rmtree()Supprime le répertoire et tout le contenu en dessous.

  • pathlib.Path.unlink() est utilisé dans Python 3.4 et supérieur pour supprimer un seul fichier à l'aide du module pathlib.

os.remove()Supprimer des fichiers

Le module OS en Python fournit des fonctions pour interagir avec le système d'exploitation. Le système d'exploitation appartient aux modules utilitaires standard de Python. Ce module fournit un moyen portable d'utiliser les fonctionnalités dépendantes du système d'exploitation.

La méthode os.remove() en Python est utilisée pour supprimer les chemins de fichiers. Cette méthode ne peut pas supprimer de répertoires. Si le chemin spécifié est un répertoire, cette méthode générera OSError.

Remarque : les répertoires peuvent être supprimés à l'aide de os.rmdir().

Syntaxe :

Voici la syntaxe de la remove() méthode pour supprimer les fichiers Python :

os.remove(path)

Paramètres

  • path – Il s'agit du chemin ou du nom du fichier à supprimer.

Valeur de retour

remove()La méthode n'a pas de valeur de retour.

Regardons quelques exemples d'utilisation de la fonction os.remove pour supprimer des fichiers Python.

Exemple 1 : Exemple de base de suppression de fichiers à l'aide de la méthode OS.Remove().

# Importing the os library
import os

# Inbuilt function to remove files
os.remove("test_file.txt")
print("File removed successfully")

Sortie :

File removed successfully

Explication : Dans l'exemple ci-dessus, nous avons supprimé le fichier ou supprimé le chemin du fichier nommé testfile.txt. Les étapes pour expliquer le déroulement du programme sont les suivantes :

1. Tout d'abord, nous avons importé la bibliothèque os car la méthode remove() existe dans la bibliothèque os.

2. Ensuite, nous utilisons la fonction intégrée os.remove() pour supprimer le chemin du fichier.

3. Dans cet exemple, notre exemple de fichier est “ test_file.txt”. Vous pouvez placer les fichiers requis ici.

Remarque : L'exemple ci-dessus générera une erreur s'il n'y a pas de fichier nommé test_file.txt. Il est donc préférable de vérifier si le fichier est disponible avant de le supprimer.

Exemple 2 : Vérifiez si le fichier existe en utilisant Os.Path.Isfile et supprimez-le en utilisant Os.Remove

Dans l'exemple 1, nous venons de supprimer des fichiers qui existent dans le répertoire. La méthode os.remove() recherchera dans le répertoire de travail le fichier à supprimer. Il est donc préférable de vérifier si le fichier existe.

Apprenons comment vérifier si un fichier avec un nom spécifique est disponible dans ce chemin. Nous utilisons os.path.isfile pour vérifier la disponibilité des fichiers.

#importing the os Library
import os

#checking if file exist or not
if(os.path.isfile("test.txt")):
    
    #os.remove() function to remove the file
    os.remove("demo.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

Sortie :

File Deleted successfully

Dans l'exemple ci-dessus, nous avons uniquement ajouté la méthode os.pasth.isfile(). Cette méthode nous aide à savoir si un fichier existe dans un emplacement spécifique.

Exemple 3 : Programme Python pour supprimer tous les fichiers avec une extension spécifique

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)

Sortie :

À l'aide de ce programme, Nous supprimerons tous les fichiers avec l'extension .txt du dossier.

Explication :

  • Importer le module os et listdir depuis le module os. listdir doit être utilisé pour obtenir une liste de tous les fichiers dans un dossier spécifique, et le module os est requis pour supprimer des fichiers.

  • my_path est le chemin d'accès au dossier qui contient tous les fichiers.

  • Nous parcourons les fichiers d'un dossier donné. listdir Utilisé pour obtenir une liste de tous les fichiers dans un dossier spécifique.

  • endswith est utilisé pour vérifier si le fichier se termine par l'extension .txt. Ceci est fait si la condition peut être vérifiée lorsque nous supprimons tous les .txt fichiers du dossier.

  • Si le nom du fichier se termine par l'extension .txt, nous utiliserons la fonction os.remove() pour supprimer le fichier. Cette fonction prend le chemin du fichier en paramètre. my_path + file_name est le chemin complet du fichier que nous souhaitons supprimer.

Exemple 4 : Programme Python pour supprimer tous les fichiers d'un dossier

Pour supprimer tous les fichiers d'un répertoire spécifique, utilisez simplement * symbole comme chaîne de modèle.

#Importing os and glob modules
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("Deleted " + str(file))

Sortie :

Deleted pythonpool\test1.txt
Deleted pythonpool\test2.txt
Deleted pythonpool\test3.txt
Deleted pythonpool\test4.txt

Dans cet exemple, nous supprimerons tous les fichiers du dossier pythonpool.

注意:如果文件夹包含其他子文件夹,则可能会报错,因为glob.glob()方法将获取所有文件夹内容的名称,无论它们是文件还是子文件夹。因此,请尝试使模式更具体(例如*.*),以仅获取具有扩展名的内容。

使用os.unlink()删除Python文件

os.unlink()os.remove()的别名。在Unix OS中,删除也称为unlink

注意:所有功能和语法与os.unlink()os.remove()相同。它们都用于删除Python文件路径。两者都是Python标准库的os模块中执行删除功能的方法。

它有两个名称,别名:os.unlink()os.remove()

为同一个函数提供两个别名的可能原因是,该模块的维护者认为,许多程序员可能会从C的底层编程转向Python,其中库函数和底层系统调用称为unlink(),而其他人则可能会使用rm命令(“删除”的缩写)或shell脚本来简化语言。

使用shutil.rmtree()删除Python文件

shutil.rmtree():删除指定的目录,所有子目录和所有文件。此功能特别危险,因为它无需检查即可删除所有内容。结果,您可以使用此功能轻松丢失数据。

rmtree()是shutil模块下的一种方法,该方法以递归方式删除目录及其内容。

句法:

Shutil.rmtree(path,ignore_errors = False,onerror = None)

参数:

path:类似路径的对象,表示文件路径。类路径对象是表示路径的字符串或字节对象。

ignore_errors:如果ignore_errorstrue,则删除失败导致的错误将被忽略。

oneerror:如果ignore_errorsfalse或被忽略,则通过调用onerror指定的处理程序来处理此类错误。

我们来看一个使用python脚本删除文件的示例。

示例:使用Shutil.Rmtree()删除文件的Python程序

# Python program to demonstrate shutil.rmtree() 
 
import shutil 
import os 
 
# location 
location = "E:/Projects/PythonPool/"
 
# directory 
dir = "Test"
 
# path 
path = os.path.join(location, dir) 
 
# removing directory 
shutil.rmtree(path)

输出:

它将删除Test内文件的整个目录,包括Test文件夹本身。

Python中使用pathlib.Path.unlink()删除文件

pathlib模块在Python  3.4及更高版本中可用。如果要在Python 2中使用此模块,可以使用pip进行安装。pathlib提供了一个面向对象的界面,用于处理不同操作系统的文件系统路径。

要使用pathlib模块删除文件,请创建一个指向该文件的Path对象,然后对该对象调用unlink()方法:

示例:使用Pathlib删除文件的Python程序

#Example of file deletion by pathlib
 
import pathlib
 
rem_file = pathlib.Path("pythonpool/testfile.txt")

rem_file.unlink()

在上面的示例中,path()方法用于检索文件路径,而unlink()方法用于删除指定路径的文件。

unlink()方法适用于文件。如果指定了目录,则会引发OSError。要删除目录,我们可以采用前面讨论的方法之一。

结论

在本文中,我们学习了Python删除文件的各种方法。使用Python删除文件或文件夹的语法非常简单。但是,请注意,一旦执行上述命令,您的文件或文件夹将被永久删除。

如果您仍然对Python删除文件有任何疑问。请在下面的评论部分中告诉我们。

大量免费学习推荐,敬请访问python教程(视频)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer