Рекурсивное удаление файлов и директорий в Python

GetCoder.ru
Изображение статьи

Python: рекурсивное удаление файлов и директорий

В процессе работы с файловой системой часто возникает необходимость удалить целую директорию со всеми ее содержимым. В Python это можно сделать с помощью рекурсивной функции, которая пройдется по всем файлам и поддиректориям и удалит их. Рассмотрим метод, реализующий эту задачу.

  • copy
#-*- coding: UTF-8 -*- import os """ Рекурсивно удаляет файлы и директории вместе с указанной директорией. :param directory_path: путь к директории для удаления """ def recursive_delete(directory_path): if os.path.isdir(directory_path): files = os.listdir(directory_path) if files: for file_name in files: file_path = os.path.join(directory_path, file_name) recursive_delete(file_path) try: os.rmdir(directory_path) print('Удаление директории:', directory_path) except Exception as e: print(e) else: try: os.remove(directory_path) print('Удаление файла:', directory_path) except Exception as e: print(e) recursive_delete('direct_1')

Принцип работы

Этот код представляет собой рекурсивную функцию recursive_delete(), которая принимает путь к директории для удаления. Функция проверяет, является ли указанный путь директорией, и если да, проходит по всем файлам и поддиректориям в этой директории, вызывая себя рекурсивно для каждого из них. Затем она пытается удалить директорию с помощью os.rmdir(). Если путь не является директорией, то функция пытается удалить файл с помощью os.remove().

Заключение

Этот метод позволяет удобно и эффективно удалять как отдельные файлы, так и целые директории вместе со всем их содержимым, что делает его полезным инструментом при работе с файловой системой в Python.

  • 17.03.2024
  • 18
  • 0

Рекурсивное удаление файлов и директорий в Python

В процессе работы с файловой системой часто возникает необходимость удалить целую директорию со всеми ее содержимым. В Python это можно сделать с помощью рекурсивной функции, которая пройдется по всем файлам и поддиректориям и удалит их. Рассмотрим метод, реализующий эту задачу.

  • copy
#-*- coding: UTF-8 -*- import os """ Рекурсивно удаляет файлы и директории вместе с указанной директорией. :param directory_path: путь к директории для удаления """ def recursive_delete(directory_path): if os.path.isdir(directory_path): files = os.listdir(directory_path) if files: for file_name in files: file_path = os.path.join(directory_path, file_name) recursive_delete(file_path) try: os.rmdir(directory_path) print('Удаление директории:', directory_path) except Exception as e: print(e) else: try: os.remove(directory_path) print('Удаление файла:', directory_path) except Exception as e: print(e) recursive_delete('direct_1')

Принцип работы

Этот код представляет собой рекурсивную функцию recursive_delete(), которая принимает путь к директории для удаления. Функция проверяет, является ли указанный путь директорией, и если да, проходит по всем файлам и поддиректориям в этой директории, вызывая себя рекурсивно для каждого из них. Затем она пытается удалить директорию с помощью os.rmdir(). Если путь не является директорией, то функция пытается удалить файл с помощью os.remove().

Заключение

Этот метод позволяет удобно и эффективно удалять как отдельные файлы, так и целые директории вместе со всем их содержимым, что делает его полезным инструментом при работе с файловой системой в Python.