یک اسکریپت پایتون بنویسید که در یک دایرکتوری مشخص همه فایلها را بررسی کند، با استفاده از zipfile.is_zipfile آرشیوهای زیپ معتبر را شناسایی کند، فایلهای CSV داخل هر آرشیو را استخراج و خوانده و همه دادهها را در یک DataFrame واحد ادغام کرده و نتیجه را به عنوان merged.csv ذخیره نماید.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:38 0.0
برای حل این مسئله از ماژولهای استاندارد Python مثل os یا glob برای پیمایش دایرکتوری و از ماژول zipfile و تابع is_zipfile برای تشخیص آرشیوهای معتبر استفاده کنید؛ برای هر آرشیو از zipfile.ZipFile با context manager استفاده کنید و نام فایلها را با namelist() بررسی کنید تا فایلهای با پسوند .csv را بیابید. برای خواندن و ادغام دادهها از pandas.read_csv و سپس pandas.concat استفاده کنید؛ نکات مفید شامل استفاده از try/except برای نادیده گرفتن آرشیوهای معیوب، استفاده از os.path.join برای مسیرها و در صورت بزرگ بودن فایلها استفاده از پارامتر chunksize در read_csv است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای کار با آرشیوها از zipfile.is_zipfile استفاده کنید تا فقط ZIPهای معتبر پردازش شوند و با context manager باز شوند. نام فایلهای CSV را با namelist() بررسی کنید و مسیرها را با os.path.join بسازید تا به فایلها دسترسی پیدا کنید. اگر CSVها بزرگ هستند از read_csv(..., chunksize=...) استفاده کنید و با pandas.concat یا نوشتن تدریجی به merged.csv نتیجه را ذخیره کنید تا مصرف حافظه کنترل شود. در نهایت با یک بلوک try/except اطراف بازکردن و خواندن آرشیوها، آرشیوهای معیوب را نادیده بگیرید و خروجی را به merged.csv ذخیره کنید.
گزارش