Рубрики
Без рубрики

Как удалить непустую папку в Python?

Постановка проблемы: Учитывая путь к папке как строку Python. Папка не пустая. Как удалить всю папку в вашем сценарии Python? Пример: скажем, у вас есть в своем сценарии Python, и он содержит некоторые файлы и подпапки: Path –TO —- папка ——- file1.dat —— file2.dat ——– subfolder1 ——– file3.dat ——— —— file4.dat. Вы хотите удалить … Как удалить непустую папку в Python? Подробнее “

Автор оригинала: Chris.

Постановка проблемы:

  • Учитывая путь в папку как строку Python. Папка не пустая.
  • Как удалить всю папку в вашем сценарии Python?

Пример : Скажи, у тебя есть path = 'path/to/folder' В вашем скрипте Python и содержит некоторые файлы и подпапки:

path
--to
----folder
------file1.dat
------file2.dat
------subfolder1
--------file3.dat
------subfolder2
--------file4.dat

Вы хотите удалить все смелое содержимое в предыдущей структуре примерной папки.

Способ 1: Удалить файлы сразу с помощью PULTIL.RMTREE ()

Модуль Шусил Обеспечивает функцию rmtree () Это удаляет все папки и файлы рекурсивно с данного пути.

import shutil

# String path of folder to be removed:
path = 'path/to/folder'

# Remove the folder recursively:
shutil.rmtree(path)

PULTIL.RMTREE () Функция удаляет все дерево каталога на предоставленном пути, указывающей на каталог (не файл или символическую ссылку каталога).

Обратите внимание, что файлы только для чтения не могут быть удалены из папки, используя эту утилиту, потому что они, ну, Читайте только Отказ Вот почему это бросит ошибку, когда вы пытаетесь удалить файлы только для чтения. Если вы хотите удалить оставшуюся папку содержимое независимо от того, вам нужно установить дополнительный аргумент Ignore_Errors Отказ

shutil.rmtree(path, ignore_errors=True)

Однако файлы только для чтения не будут удалены в любом случае!

Способ 2: удалить файлы индивидуально с помощью os.walk ()

Более мелкозернистый подход предоставляется Os.walk () Функция:

import os

# String path of folder to be removed:
path = 'path/to/folder'

# Remove the folder by walking through the files (from the bottom up):
for root, dirs, files in os.walk(path, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))

Внимание : Перед использованием этого кода убедитесь, что он адаптирован к вашей конкретной проблеме, поскольку она может потенциально удалять все файлы в вашей операционной системе, если вы укажете путь верхнего уровня как «/» или любой другой корневой путь в вашей конкретной операционной системе.

  • Os.walk (путь,) Способ предоставляет итератор по всем файлам по данному путь Отказ TOPDown = Ложь Аргумент гарантирует, что вы переместитесь снизу вверх, то есть вы сначала удалите все содержимое папки, прежде чем удалять саму папку.
  • OS.Remove (OS.Path.join (root, name)) Метод Удаляет файл В расположении root + Имя где Имя Это файловый суффикс (например, file.dat ' ) и корень Это путь к этому файлу (например, '/Path/to/file/' ).
  • OS.RMDIR (OS.PATH.join (root, name)) Метод Удаляет папку В расположении root + Имя где Имя Это суффикс папки (например, 'file.dat' ) и корень Это путь к этому файлу (например, '/Path/to/file/' ).

Метод 3: Прогулка по файлам и папкам с помощью PATHLIB

import pathlib


# String path of folder to be removed:
path = 'path/to/folder'

# Remove the folder
del_folder(path):
    for sub in path.iterdir():
        if sub.is_dir():
            # Delete folder if it is a folder
            del_folder(sub)
        else :
            # Delete file if it is a file:
            sub.unlink()
    
    # This removes the top-level folder:
    path.rmdir()

del_folder(pathlib.Path(path))

Ресурсы:

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/how-to-remove-a-non-empty-folder-in-python/”