با استفاده از csv.Sniffer یک اسکریپت پایتون بنویسید که دیالکت و وجود هدر در یک فایل CSV را شناسایی کند و سپس فایل را مطابق آن بخواند و نتایج (نام ستونها و ۵ سطر اول) را چاپ کند.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:27 0.0
فایل را با open(..., newline='') باز کنید، نمونهای از ابتدای فایل (مثلاً 2048 بایت) بخوانید و از csv.Sniffer().sniff(sample) برای تشخیص جداکننده و از csv.Sniffer().has_header(sample) برای تشخیص هدر استفاده کنید؛ سپس به ابتدا برگردید (file.seek(0)) و با csv.DictReader اگر هدر وجود داشت یا csv.reader در غیر این صورت دادهها را بخوانید و نام ستونها و ۵ سطر اول را چاپ کنید. نکات: به انکودینگ و اندازه نمونه توجه کنید، در صورت بروز خطا از try/except استفاده کنید و این روش برای پردازش خودکار و پاکسازی CSVها در پروژههای Data Science و اسکریپتهای اتوماسیون مفید است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از csv.Sniffer برای تشخیص دیالکت و وجود هدر مفید است، اما نتیجه sniff ممکن است در فایلهای ناهمگون یا با نمونههای کوچک ناپایدار باشد. برای کاهش خطاها از یک نمونه نسبتاً بزرگ استفاده کنید (مثلاً چند کیلوبایت یا چند سطر ابتدایی) و در صورت لزوم از بازخوانیٔ مجدد نتیجه sniff با رفتار مختلف مطمئن شوید. فایل را با open(..., newline='') باز کنید، به ابتدای فایل بازگردانید (seek(0)) و بر اساس has_header تصمیم بگیرید که از csv.DictReader یا csv.reader استفاده کنید. این رویکرد برای خودکارسازی و پاکسازی CSVها در پروژههای Data Science مفید است، اما به مسائل encoding، BOM و برخی دیالکتهای غیرمعمول باید توجه داشت.
گزارش