یک اسکریپت پایتون بنویسید که در یک دایرکتوری مشخص همه فایل‌ها را بررسی کند، با استفاده از 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 است.

توسط پژوهشگر در 221 روز قبل ساعت 01:38
دسته بندی ها: Python Python for beginner
arash در 221 روز قبل ساعت 12:33

برای کار با آرشیوها از zipfile.is_zipfile استفاده کنید تا فقط ZIPهای معتبر پردازش شوند و با context manager باز شوند. نام فایل‌های CSV را با namelist() بررسی کنید و مسیرها را با os.path.join بسازید تا به فایل‌ها دسترسی پیدا کنید. اگر CSVها بزرگ هستند از read_csv(..., chunksize=...) استفاده کنید و با pandas.concat یا نوشتن تدریجی به merged.csv نتیجه را ذخیره کنید تا مصرف حافظه کنترل شود. در نهایت با یک بلوک try/except اطراف بازکردن و خواندن آرشیوها، آرشیوهای معیوب را نادیده بگیرید و خروجی را به merged.csv ذخیره کنید.

گزارش

1 پاسخ

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

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