از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نحوه حذف یک فایل یا پوشه در پایتون در این بایت ما نحوه حذف فایل ها و پوشه ها در پایتون را بررسی خواهیم کرد. این یک کار رایج در بسیاری از زمینه های برنامه نویسی و برنامه نویسی است، به ویژه در زمینه هایی مانند پاک کردن داده ها، حذف موقت فایل، یا حتی هنگام کار با پایگاه های داده مبتنی بر فایل. شما باید حذف فایل را به دقت به عنوان یک خطا مدیریت کنید…
سرفصلهای مطلب
معرفی
در این بایت، نحوه حذف فایل ها و پوشه ها در پایتون را بررسی خواهیم کرد. این یک کار رایج در بسیاری از زمینه های برنامه نویسی و برنامه نویسی است، به ویژه در زمینه هایی مانند پاک کردن داده ها، حذف موقت فایل، یا حتی هنگام کار با پایگاه های داده مبتنی بر فایل. شما باید حذف فایل را با دقت انجام دهید زیرا یک خطا می تواند باعث از دست رفتن داده ها شود که اغلب غیرقابل برگشت است.
برای نشان دادن نحوه انجام این کار، ما از ماژول های داخلی پایتون مانند os
و shutil
برای این کار بنابراین، اگر با سینتکس پایتون و عملیات فایل آشنایی دارید، خوب هستید!
حذف یک فایل در پایتون
حذف یک فایل در پایتون نسبتاً آسان است. بیایید دو روش برای انجام این کار با استفاده از ماژول های مختلف پایتون مورد بحث قرار دهیم.
با استفاده از ماژول ‘os’
این os
ماژول در پایتون متدی به نام ارائه می دهد os.remove()
که می توان از آن برای حذف یک فایل استفاده کرد. در اینجا یک مثال ساده آورده شده است:
import os
# specify the file name
file_name = "test_file.txt"
# delete the file
os.remove(file_name)
در مثال بالا، ابتدا آن را وارد می کنیم os
مدول. سپس نام فایلی که قرار است حذف شود را مشخص می کنیم. بالاخره زنگ میزنیم os.remove()
با نام فایل به عنوان پارامتر حذف فایل.
توجه داشته باشید: این os.remove()
تابع فقط می تواند حذف شود فایل ها، نه دایرکتوری ها. اگر سعی کنید با استفاده از این تابع یک دایرکتوری را حذف کنید، یک عدد دریافت خواهید کرد IsADirectoryError
.
با استفاده از ماژول ‘shutil’
این shutil
ماژول، مخفف “shell utilities” نیز روشی برای حذف فایل ها ارائه می دهد – shutil.rmtree()
. اما چرا استفاده کنید shutil
چه زمانی os
می تواند کار را انجام دهد؟ خوب، shutil
می تواند یک درخت دایرکتوری کامل (یعنی یک دایرکتوری و همه زیر شاخه های آن) را حذف کند. بیایید ببینیم چگونه یک فایل را با آن حذف کنیم shutil
.
import shutil
# specify the file name
file_name = "test_file.txt"
# delete the file
shutil.rmtree(file_name)
کد بسیار شبیه به کد به نظر می رسد os
به عنوان مثال، درست است؟ این یکی از بخشهای عالی طراحی پایتون است – ثبات در ماژولها. با این حال، این را به یاد داشته باشید shutil.rmtree()
قدرتمندتر است و می تواند دایرکتوری های غیر خالی را نیز حذف کند، که در بخش بعدی با دقت بیشتری به آن ها خواهیم پرداخت.
حذف یک پوشه در پایتون
با رفتن به موضوع حذف دایرکتوری، می توانیم دوباره از آن استفاده کنیم os
و shutil
ماژول هایی برای انجام این کار در اینجا هر دو روش را بررسی خواهیم کرد.
با استفاده از ماژول ‘os’
این os
ماژول در پایتون متدی به نام ارائه می دهد os.rmdir()
که به ما امکان می دهد یک را حذف کنیم خالی فهرست راهنما. در اینجا نحوه استفاده از آن آورده شده است:
import os
# specify the directory you want to delete
folder_path = "/path/to/your/directory"
# delete the directory
os.rmdir(folder_path)
این os.rmdir()
روش فقط دایرکتوری های خالی را حذف می کند. اگر دایرکتوری خالی نباشد، با یک علامت مواجه خواهید شد OSError: (Errno 39) Directory not empty
خطا
با استفاده از ماژول ‘shutil’
در صورتی که می خواهید دایرکتوری را حذف کنید که خالی نیست، می توانید از آن استفاده کنید shutil.rmtree()
روش از shutil
مدول.
import shutil
# specify the directory you want to delete
folder_path = "/path/to/your/directory"
# delete the directory
shutil.rmtree(folder_path)
این shutil.rmtree()
متد یک دایرکتوری و تمام محتویات آن را حذف می کند، بنابراین با احتیاط از آن استفاده کنید!
صبر کن! همیشه قبل از اجرای کد حذف، مسیر دایرکتوری را دوبار بررسی کنید. شما نمی خواهید به طور تصادفی فایل ها یا دایرکتوری های مهم را حذف کنید!
خطاهای رایج
هنگامی که با عملیات فایل و دایرکتوری در پایتون سروکار دارید، معمولاً با چند خطای خاص مواجه می شوید. درک این خطاها برای رسیدگی به آنها و حصول اطمینان از اجرای روان کد شما مهم است.
خطای مجوز: (Errno 13) اجازه رد شد
یکی از خطاهای رایجی که ممکن است هنگام تلاش برای حذف یک فایل یا پوشه با آن مواجه شوید، این است PermissionError: (Errno 13) Permission denied
. این خطا زمانی رخ می دهد که می خواهید فایل یا پوشه ای را حذف کنید که اسکریپت پایتون شما مجوزهای لازم را برای آن ندارد.
در اینجا نمونه ای از آنچه ممکن است به نظر برسد آورده شده است:
import os
try:
os.remove("/root/test.txt")
except PermissionError:
print("Permission denied")
در این مثال، ما سعی می کنیم یک فایل را در دایرکتوری ریشه حذف کنیم، که معمولاً به امتیازات مدیریتی نیاز دارد. هنگام اجرا، این کد خروجی خواهد شد Permission denied
.
برای جلوگیری از این خطا، مطمئن شوید که اسکریپت شما دارای مجوزهای لازم برای انجام عملیات است. این ممکن است شامل اجرای اسکریپت خود به عنوان یک سرپرست یا تغییر مجوزهای فایل یا پوشه ای باشد که می خواهید حذف کنید.
FileNotFoundError: (Errno 2) چنین فایل یا فهرستی وجود ندارد
یکی دیگر از خطاهای رایج این است FileNotFoundError: (Errno 2) No such file or directory
. این خطا زمانی رخ می دهد که می خواهید فایل یا پوشه ای را که وجود ندارد حذف کنید.
در اینجا چگونه ممکن است به نظر برسد:
import os
try:
os.remove("nonexistent_file.txt")
except FileNotFoundError:
print("File not found")
در این مثال، ما سعی می کنیم فایلی را که وجود ندارد حذف کنیم، بنابراین پایتون a را پرتاب می کند FileNotFoundError
.
برای جلوگیری از این امر، می توانید قبل از تلاش برای حذف فایل یا پوشه، وجود آن را بررسی کنید، مانند:
import os
if os.path.exists("test.txt"):
os.remove("test.txt")
else:
print("File not found")
OSError: (Errno 39) دایرکتوری خالی نیست
این OSError: (Errno 39) Directory not empty
خطا زمانی رخ می دهد که می خواهید دایرکتوری خالی را با استفاده از آن حذف کنید os.rmdir()
.
برای مثال:
import os
try:
os.rmdir("my_directory")
except OSError:
print("Directory not empty")
این خطا را می توان با اطمینان از خالی بودن دایرکتوری قبل از تلاش برای حذف یا با استفاده از آن اجتناب کرد shutil.rmtree()
، که می تواند یک دایرکتوری و تمام محتویات آن را حذف کند:
import shutil
shutil.rmtree("my_directory")
راه حل ها و موارد استفاده مشابه
قابلیتهای حذف فایل و دایرکتوری پایتون را میتوان در موارد استفاده مختلفی فراتر از حذف ساده فایلها یا پوشهها اعمال کرد.
حذف فایل ها با پسوندهای خاص
تصور کنید که دایرکتوری پر از فایل دارید و فقط باید آنهایی را که مثلاً پسوند فایل خاصی دارند حذف کنید .txt
. پایتون با کتابخانه های همه کاره خود می تواند به شما در انجام این کار به راحتی کمک کند. این os
و glob
ماژول ها دوستان شما در اینجا هستند.
import os
import glob
# Specify the file extension
extension = "*.txt"
# Specify the directory
directory = "/path/to/directory/"
# Combine the directory with the extension
files = os.path.join(directory, extension)
# Loop over the files and delete them
for file in glob.glob(files):
os.remove(file)
این اسکریپت همه را حذف می کند .txt
فایل ها در دایرکتوری مشخص شده این glob
ماژول برای بازیابی فایل ها / نام مسیر مطابق با یک الگوی مشخص استفاده می شود. در اینجا، الگوی تمام فایلها به پایان میرسد .txt
.
حذف دایرکتوری های خالی
آیا تا به حال خود را با یک دسته دایرکتوری خالی پیدا کرده اید که بخواهید از شر آنها خلاص شوید؟ پایتون os
ماژول در اینجا نیز می تواند به شما کمک کند.
import os
# Specify the directory
directory = "/path/to/directory/"
# Use listdir() to check if directory is empty
if not os.listdir(directory):
os.rmdir(directory)
این os.listdir(directory)
تابع فهرستی حاوی نام ورودیهای فهرست دادهشده توسط مسیر را برمیگرداند. اگر لیست خالی است، به این معنی است که دایرکتوری خالی است و ما می توانیم با خیال راحت آن را حذف کنیم os.rmdir(directory)
.
توجه داشته باشید: os.rmdir(directory)
فقط می تواند دایرکتوری های خالی را حذف کند. اگر دایرکتوری خالی نباشد، یک عدد دریافت خواهید کرد OSError: (Errno 39) Directory not empty
خطا
نتیجه
در این بایت، نحوه حذف فایل ها و پوشه ها را بررسی کردیم. همچنین موارد استفاده مشابه دیگری مانند حذف فایلهایی با پسوندهای خاص، دایرکتوریهای خالی و دایرکتوریهای تودرتو با استفاده از پایتون را دیدیم. ما از قدرت اهرمی استفاده کردیم os
، glob
، و shutil
ماژول هایی برای انجام این وظایف.
منتشر شده در 1402-12-26 05:22:04