با استفاده از ماژول zipfile و pandas یک اسکریپت بنویس که چند DataFrame نمونه را به فرمت CSV ذخیره کند و سپس همه‌ی فایل‌های CSV تولید شده را در یک فایل ZIP با فشرده‌سازی ZIP_DEFLATED قرار دهد.

4.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:14

0.0

برای حل این مسئله از pandas برای ساختن و ذخیره DataFrameها با df.to_csv و از ماژول استاندارد zipfile برای نوشتن فایل ZIP استفاده کنید؛ بهتر است از دستور with zipfile.ZipFile('datasets.zip','w',compression=zipfile.ZIP_DEFLATED) به‌عنوان context manager بهره ببرید تا فایل به‌درستی بسته شود. نکات مفید: قبل از اضافه کردن فایل‌ها به ZIP از os.path.basename برای arcname استفاده کنید تا مسیر کامل در آرشیو نیاید، و در صورت نیاز پس از فشرده‌سازی فایل‌های CSV موقت را حذف کنید.

توسط پژوهشگر در 220 روز قبل ساعت 02:14
دسته بندی ها: Python Python for beginner
nima در 220 روز قبل ساعت 10:25

استفاده از zipfile با یک context manager (with) و ذخیره چند DataFrame به CSV با pandas، روشی مطمئن و خوانا برای فشرده‌سازی است. قبل از اضافه کردن فایل‌ها به ZIP، از os.path.basename برای arcname استفاده کنید تا مسیر کامل در آرشیو ذخیره نشود و در صورت نیاز فایل‌های CSV موقتی را حذف کنید. برای کارایی بهتر می‌توانید CSVها را یا به‌صورت درون حافظه با io.StringIO بنویسید و از zipfile.writestr استفاده کنید یا به‌طور معمول روی دیسک موقتا ذخیره کرده و پس از فشرده‌سازی حذف کنید. همچنین استفاده از df.to_csv با index=False باعث می‌شود فایل‌های CSV تمیزتر و کوچک‌تر باشند.

گزارش

1 پاسخ

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

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