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


Python: рекурсивное удаление файлов и директорий
В процессе работы с файловой системой часто возникает необходимость удалить целую директорию со всеми ее содержимым. В Python это можно сделать с помощью рекурсивной функции, которая пройдется по всем файлам и поддиректориям и удалит их. Рассмотрим метод, реализующий эту задачу.
#-*- 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 это можно сделать с помощью рекурсивной функции, которая пройдется по всем файлам и поддиректориям и удалит их. Рассмотрим метод, реализующий эту задачу.
#-*- 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.