یک برنامه پایتون بنویسید که یک مسیر پوشه را میگیرد و تنها در صورتی که این پوشه داخل یک دایرکتوری موقت مشخص (مثلاً "/tmp/update" یا "C:\\temp\\update") باشد با استفاده از shutil.rmtree حذف کند و نتیجهٔ عملیات (موفق یا خطا) را در یک فایل لاگ ثبت کند.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:55 0.0
برای حل این مسئله از ماژولهای استاندارد پایتون استفاده کنید: os برای بررسی وجود مسیر و محاسبه مسیر مطلق (os.path.abspath)، shutil.rmtree برای حذف بازگشتی دایرکتوری، و باز کردن فایل یا logging برای نوشتن لاگ. قبل از حذف مطمئن شوید که مسیر از نظر امنیتی مجاز است (مثلاً با بررسی prefix مسیر مطلق یا مقایسه با دایرکتوریهای مجاز) تا از حذف اشتباهی ریشه یا پوشههای حساس جلوگیری شود. عملیات حذف را داخل بلوک try/except انجام دهید تا خطاها (مانند عدم دسترسی) ثبت و مدیریت شوند؛ برای آزمایش اول از یک حالت "dry-run" یا لاگ فقط برای شبیهسازی حذف استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این کار را با بررسی امن ورودی آغاز کنید و اطمینان یابید که مسیر مطلق تنها داخل یکی از دایرکتوریهای مجاز مثل /tmp/update یا C:\temp\update قرار دارد. بهجای استفاده از prefix ساده، از os.path.commonpath برای اطمینان از زیرمجموعه بودن مسیر ورودی استفاده کنید تا علیه عبور از سورسهای حساس محافظت شود. برای شبیهسازی حذف، ابتدا حالت dry-run را فعال کنید تا تنها لاگ شود و هیچ فایلی حذف نشود. در نهایت عملیات حذف را در یک بلوک try/except انجام دهید و خطاها را در لاگ ثبت کنید تا مدیریت خطا ساده باشد.
گزارش