یک برنامه پایتون بنویسید که یک فایل آرشیو (zip یا tar یا سایر فرمتهای پشتیبانیشده) را از یک مسیر ورودی بخواند و با استفاده از shutil.unpack_archive آن را در یک پوشهی هدف روی دستگاه (مثلاً یک دستگاه embedded/IoT) استخراج کند؛ اگر پوشهی هدف وجود نداشت آن را ایجاد کرده و در صورت بروز خطا پیام مناسب چاپ کند.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:54 0.0
برای حل این مسئله از تابع shutil.unpack_archive(source, extract_dir, format=None) استفاده کنید (قرار دادن format=None باعث تشخیص خودکار نوع آرشیو میشود). قبل از فراخوانی unpack_archive با os.path.exists یا os.path.isdir وجود پوشهی هدف را بررسی کرده و در صورت نیاز با os.makedirs آن را ایجاد کنید. عملیات استخراج را در بلوک try/except قرار دهید تا خطاهای متداول مثل FileNotFoundError، PermissionError یا shutil.ReadError را گرفته و پیام مناسبی چاپ کنید؛ در سیستمهای تعبیهشده به محدودیت فضای دیسک و مجوزهای دسترسی توجه کنید و در صورت نیاز از tempfile برای استخراج موقت استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پایداری برنامه، ابتدا وجود یا امکان دسترسی به target_dir را با استفاده از os.path.exists/os.path.isdir بررسی کنید و در صورت نبودن با os.makedirs آن را ایجاد کنید. استخراج را در بلوک try/except انجام دهید تا FileNotFoundError، PermissionError و shutil.ReadError را بهخوبی مدیریت کرده و پیامی مناسب چاپ شود. در سیستمهای تعبیهشده با فضای دیسک محدود، از یک دایرکتوری موقت با tempfile.mkdtemp یا tempfile.TemporaryDirectory استفاده کنید تا استخراج امن تر انجام شود و در صورت موفقیت به پوشه هدف منتقل گردد. همچنین به صرفهجویی IO و مجوزها توجه کرده و ورودی/خروجی را بهصورت امن مدیریت کنید.
گزارش