منو سایت

Python چگونه یک پوشه غیر خالی را حذف کنیم

 تاریخ انتشار :
/
  وبلاگ
Python چگونه یک پوشه غیر خالی را حذف کنیم

پایتون یک پوشه غیر خالی را با تابع shutil rmtree حذف می کند

برای حذف یک پوشه غیر خالی در پایتون، می توانید استفاده کنید shutil ماژولی که توابعی را برای کپی و حذف فایل ها و دایرکتوری ها فراهم می کند.

توجه! این راهنما به شما نشان می دهد که چگونه فایل ها و دایرکتوری ها را برای همیشه حذف کنید. مطمئن شوید که مسیرهای فایل را مشخص کرده اید تا 100% مطمئن شوید که دایرکتوری هایی را که می خواهید حذف کنید حذف کنید.

برای حذف یک دایرکتوری و تمام محتویات آن، از جمله همه زیر شاخه ها و فایل ها، می توانید استفاده کنید rmtree عملکرد.

مثلا:

import shutil

# Replace with the path to the directory you want to remove
directory = '/path/to/directory'

shutil.rmtree(directory)

با این کار دایرکتوری و تمام محتویات آن از جمله همه زیر شاخه ها و فایل ها حذف می شود. توجه داشته باشید که این روش فایل های فقط خواندنی را حذف نمی کند! در عوض یک خطا خواهید دید.

بیایید به چند روش جایگزین برای حذف پوشه های غیر خالی با پایتون نگاه کنیم.

رویکردهای جایگزین

1. تابع “os.walk”.

برای حذف یک پوشه غیر خالی در پایتون، می توانید فایل ها را به صورت جداگانه با استفاده از آن حذف کنید os.walk عملکرد.

در اینجا به صورت کد به نظر می رسد:

import os

# Replace with the path to the directory you want to remove
directory = '/path/to/directory'

# Use os.walk to traverse the directory tree
for root, dirs, files in os.walk(directory):
    # For each file in the directory
    for file in files:
        # Construct the full path to the file
        file_path = os.path.join(root, file)
        # Delete the file
        os.remove(file_path)
    # For each subdirectory in the directory
    for dir in dirs:
        # Construct the full path to the subdirectory
        dir_path = os.path.join(root, dir)
        # Delete the subdirectory
        os.rmdir(dir_path)

# Delete the top-level directory
os.rmdir(directory)

این کد استفاده می کند os.walk تابعی برای عبور از درخت دایرکتوری و حذف هر فایل و زیر شاخه در دایرکتوری مشخص شده است. پس از حذف همه فایل ها و زیر شاخه ها، دایرکتوری سطح بالا نیز حذف می شود.

2. ماژول Pathlib

برای حذف یک پوشه غیر خالی در پایتون با استفاده از pathlib ماژول می توانید از کد زیر استفاده کنید:

import pathlib

# A recursive function to remove the folder
def del_folder(path):
    for sub in path.iterdir():
        if sub.is_dir():
            # Delete directory if it's a subdirectory
            del_folder(sub)
        else :
            # Delete file if it is a file:
            sub.unlink()
    
    # This removes the top-level folder:
    path.rmdir()
    
# Example use
del_folder(pathlib.Path('path/to/folder'))

این کد استفاده می کند iterdir روشی برای عبور از درخت دایرکتوری و حذف هر فایل و زیر شاخه در دایرکتوری مشخص شده. پس از حذف همه فایل ها و زیر شاخه ها، دایرکتوری سطح بالا نیز حذف می شود.

با تشکر برای خواندن. کد نویسی مبارک!

همچنین بخوانید

نحوه کپی کردن فایل در پایتون