یک اسکریپت پایتون بنویسید که یک فایل ZIP را باز کند، از namelist() برای یافتن همه فایلهای CSV درون آن استفاده کند و همه آنها را به یک فایل خروجی CSV ترکیب کند.
17.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 02:56 0.0
با استفاده از ماژول استاندارد zipfile (zipfile.ZipFile) ابتدا فایل ZIP را باز کرده و با متد namelist() لیست فایلها را بگیرید و آنهایی که پسوند .csv دارند را فیلتر کنید؛ سپس برای هر فایل از zipfile.open() و pandas.read_csv() (یا csv.reader برای روش سادهتر) استفاده کنید و دادهها را درون یک DataFrame جمعآوری و با pd.concat به هم الحاق کنید. در پایان خروجی را با to_csv ذخیره کنید؛ نکات مفید: توجه به هدرها (header) تا از تکرار سطر هدر جلوگیری شود، برای فایلهای بزرگ از خواندن تکهای (chunksize) استفاده کنید و همیشه فایل ZIP را با بلوک with باز کنید تا بهدرستی بسته شود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
وقتی فایلهای CSV داخل ZIP را ترکیب میکنید مطمئن شوید سرستونها (column names) در همه فایلها یکسان باشند یا قبل از الحاق آنها را هماهنگ کنید تا سطرهای هدر دوباره نوشته نشوند. از with zipfile.ZipFile(...) برای باز کردن آرشیو استفاده کنید تا همیشه بسته شود و برای حفظ حافظه هنگام فایلهای بزرگ read_csv با chunksize یا پردازش خطبهخط را در نظر بگیرید. اگر از pandas استفاده میکنید، برای جلوگیری از دوبارهنویسی هدرها هنگام concat، برای فایلهای بعدی header=None یا skiprows=1 را اعمال کنید. همچنین توجه به Encoding (مثلاً utf-8 یا cp1256) و مقادیر NaN/تاریخها قبل از ذخیرهی نهایی مفید است.
گزارش