πŸ—‘οΈ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ с содСрТимым python 🐍

Для удалСния ΠΏΠ°ΠΏΠΊΠΈ Π² Python со всСм Π΅Π΅ содСрТимым Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ `shutil`. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

   import shutil
   import os
   
   def remove_folder(path):
       shutil.rmtree(path)
   
   remove_folder('ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΏΠ°ΠΏΠΊΠ΅')
   
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ `shutil` ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ `os`. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ `remove_folder`, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ `shutil.rmtree` для удалСния ΠΏΠ°ΠΏΠΊΠΈ со всСм Π΅Π΅ содСрТимым. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ `remove_folder` с Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, ΠΈ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π°.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ с содСрТимым Π² Python

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ вмСстС с Π΅Π΅ содСрТимым Π² языкС программирования Python являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· распространСнных Π·Π°Π΄Π°Ρ‡. НиТС прСдставлСн ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ это дСйствиС.


import shutil
import os

def delete_folder(path):
    # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, сущСствуСт Π»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ
    if os.path.exists(path):
        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, являСтся Π»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ
        if os.path.isdir(path):
            # ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ список всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
            content = os.listdir(path)
            
            # УдаляСм ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠ°ΠΏΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
            for file_or_folder in content:
                file_or_folder_path = os.path.join(path, file_or_folder)
                
                # Если Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт являСтся ΠΏΠ°ΠΏΠΊΠΎΠΉ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ рСкурсивно Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ удалСния для удалСния содСрТимого ΠΏΠ°ΠΏΠΊΠΈ
                if os.path.isdir(file_or_folder_path):
                    delete_folder(file_or_folder_path)
                else:
                    # УдаляСм Ρ„Π°ΠΉΠ»
                    os.remove(file_or_folder_path)
            
            # УдаляСм саму ΠΏΠ°ΠΏΠΊΡƒ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ всС Π΅Π΅ содСрТимоС
            os.rmdir(path)
            print(f'Папка {path} ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π°.')
        else:
            print(f'{path} Π½Π΅ являСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ.')
    else:
        print(f'Папка {path} Π½Π΅ сущСствуСт.')

Π’Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ shutil ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· модуля os, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ вмСстС с Π΅Π΅ содСрТимым. Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, поэтому Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΏΡ€ΠΈ Π΅Π³ΠΎ использовании.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ для удалСния ΠΏΠ°ΠΏΠΊΠΈ вмСстС с Π΅Π΅ содСрТимым.

  1. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ shutil ΠΈ os, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ удалСния ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой.
  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ delete_folder, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.
  3. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ os.path.exists().
  4. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, являСтся Π»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ os.path.isdir().
  5. Если ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ являСтся ΠΏΠ°ΠΏΠΊΠΎΠΉ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ список всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ os.listdir().
  6. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ ΠΏΠ°ΠΏΠΊΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ этой ΠΏΠ°ΠΏΠΊΠΈ ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ рСкурсивно Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ delete_folder для удалСния содСрТимого ΠΏΠ°ΠΏΠΊΠΈ, Ссли Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт являСтся ΠΏΠ°ΠΏΠΊΠΎΠΉ.
  7. Если Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт являСтся Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ os.remove().
  8. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ саму ΠΏΠ°ΠΏΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ os.rmdir().

Π£Π΄Π°Π»ΠΈΠ² ΠΏΠ°ΠΏΠΊΡƒ с содСрТимым, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ сообщСниС ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΏΠΊΠΈ.

ИспользованиС этого ΠΊΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ с Π΅Π΅ содСрТимым Π² языкС программирования Python. Π£Π΄Π°Ρ‡ΠΈ Π² вашСй Ρ€Π°Π±ΠΎΡ‚Π΅!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ Π² Python 3 / mrGURU

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ WITH-AS | Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ курс

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ½ΠΈΠΉ индСкс Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ - подробная инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Python Π² Jupyter?

πŸ”§ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ requests python Π½Π° PyCharm: пошаговая инструкция

πŸ—‘οΈ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ с содСрТимым python 🐍

βš™οΈ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ PySimpleGUI Π² Python: подробная инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ”¨ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ конструктор Π² Python Π·Π° нСсколько шагов?

πŸ”§ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой ИИ Π½Π° Python? ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… 🐍