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

Как RM -RF в Python, чтобы удалить каталог?

Формирование проблемы: как удалить каталог в Python? Команда RM в Linux удаляет определенный каталог. Вы также можете добавить параметры -R Удалить каталог рекурсивно-f игнорируют несуществующие файлы и аргументы и не подскажите пользователю просить подтверждения Итак, если вы запустите RM -RF my_directory, он насильно удалит my_directory и … Как RM -RF в Python, чтобы удалить каталог? Подробнее “

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

Формирование проблемы: как удалить каталог в Python?

RM Команда в Linux удаляет определенный каталог. Вы также можете добавить параметры

  • -R Удалите каталог рекурсивно
  • -f Игнорируйте несуществующие файлы и аргументы и не подскажите пользователю просить подтверждения

Итак, если вы запустите RM -RF My_Directory , это насильно удалит my_directory И все его детские каталоги.

$ rm -rf my_directory

Какой лучший способ сделать эквивалент RM -RF в Python?

Метод 1: PULTIL.RMTREE ()

Самый питонический путь к RM -RF это использовать функцию PULTIL.RMTREE () Определяется в Шусил упаковка. Требуется один аргумент, папка, которую нужно удалить, а также удаляет папку рекурсивно.

import shutil
shutil.rmtree('my_directory')

Обратите внимание, что Rmtree не семантически идентичен RM -RF. Поскольку он поднимает ошибку, если вы попытаетесь удалить один файл.

Если вы обычно хотите подавить сообщения об ошибках, вместо этого вы можете использовать следующую команду:

shutil.rmtree('my_directory', ignore_errors=True)

Способ 2: OS.UNLINK () и PULTIL.RMTREE ()

Следующий метод решает эту проблему, поднимающую ошибку Python, если вы попытаетесь удалить один файл.

import os, shutil

def remove(path):
    if os.path.exists(path):  
        if os.path.isfile(path) or os.path.islink(path):
            os.unlink(path)
        else:
            shutil.rmtree(path)

remove('my_directory')

Как указал здесь Этот метод работает на символических ссылках на каталоги в каталоге, который будет удален.

Способ 3: OS.Walk ()

Вы также можете удалить каталог со всем своим содержанием, используя Os.walk () Метод, который проходит через все файлы и папки в данном каталоге.

# CAUTION: top == '/' could delete all files on your disk!
import os
my_dir = '/my_directory'
for root, dirs, files in os.walk(my_dir, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))

Способ 4: удалить файлы только для чтения только в Windows

Вы также можете удалить каталог в Windows, если файлы находятся в режиме только чтения, используя следующий код из Python Docs :

import os, stat, shutil

def remove_readonly(func, path):
    os.chmod(path, stat.S_IWRITE)
    func(path)

directory = 'my_dir'
shutil.rmtree(directory, onerror=remove_readonly)

В этом примере показано, как удалить дерево каталога с именем 'my_dir' В Windows, где некоторые файлы являются только для чтения. Функция используется в качестве обратного вызова для очистки готовного бита и воспринимать процесс удаления. Если есть еще ошибка, она будет распространяться до основной программы.

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

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

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

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

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

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

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

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

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

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

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

Оригинал: “https://blog.finxter.com/how-to-rm-rf-in-python-to-delete-a-directory/”