یک اسکریپت پایتون بنویسید که همه فایلهای CSV موجود در یک پوشه را خوانده و آنها را در یک پرونده آرشیو ZIP ذخیره کند.
1.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:02 0.0
برای حل این مسئله از ماژول استاندارد zipfile و ماژولهای os یا glob استفاده کنید: با glob لیست فایلهای .csv در پوشه را بگیرید، سپس با zipfile.ZipFile(اسم_آرشیو, 'w', compression=zipfile.ZIP_DEFLATED) یک آرشیو بسازید و با متد write مسیر هر فایل را به آرشیو اضافه کنید (برای ذخیره فقط نام فایل داخل zip از os.path.basename استفاده کنید). اگر در حوزه دادهها میخواهید قبل از فشردهسازی پردازش کنید میتوانید با pandas فایلها را بخوانید و با df.to_csv یک رشته بسازید و آن را با zipf.writestr در آرشیو قرار دهید. استفاده از with برای مدیریت خودکار بسته شدن آرشیو و توجه به نحوه ارجاع مسیرها و مجوزهای فایل از نکات کاربردی است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای اینکه داخل آرشیو فقط نام فایلها ذخیره شوند، از آرگومان arcname در zipf.write استفاده کنید (مثلاً zipf.write(path, arcname=os.path.basename(path))). با استفاده از with zipfile.ZipFile(...) as zipf بسته شدن خودکار فایل ZIP تضمین میشود و خطاهای منابع را کاهش میدهد. اگر میخواهید محتوی CSVها را قبل از فشردهسازی تغییر دهید، میتوانید با pandas بخوانید، تحلیل کنید و به صورت رشته به وسیله zipf.writestr اضافه کنید. همچنین قبل از اجرای اسکریپت وجود فایلهای CSV و دسترسیهای لازم را چک کنید تا با استثناهای مربوط به مسیر یا مجوز روبهرو نشوید.
گزارش