یک برنامه پایتون بنویسید که یک فایل آرشیو (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 برای استخراج موقت استفاده کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:54
دسته بندی ها: Python Python for beginner
reyhaneh در 220 روز قبل ساعت 11:37

برای پایداری برنامه، ابتدا وجود یا امکان دسترسی به target_dir را با استفاده از os.path.exists/os.path.isdir بررسی کنید و در صورت نبودن با os.makedirs آن را ایجاد کنید. استخراج را در بلوک try/except انجام دهید تا FileNotFoundError، PermissionError و shutil.ReadError را به‌خوبی مدیریت کرده و پیامی مناسب چاپ شود. در سیستم‌های تعبیه‌شده با فضای دیسک محدود، از یک دایرکتوری موقت با tempfile.mkdtemp یا tempfile.TemporaryDirectory استفاده کنید تا استخراج امن تر انجام شود و در صورت موفقیت به پوشه هدف منتقل گردد. همچنین به صرفه‌جویی IO و مجوزها توجه کرده و ورودی/خروجی را به‌صورت امن مدیریت کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری