یک اسکریپت پایتون بنویسید که با استفاده از csv.Sniffer بررسی کند آیا یک فایل CSV ورودی دارای هدر است یا خیر و سپس بر اساس نتیجه فایل را بخواند و در صورت نبود هدر، عناوین خودکار (مثل col1, col2, ...) اضافه کند و خروجی را در یک فایل CSV جدید ذخیره نماید.

12.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:39

0.0

از ماژول استاندارد csv در پایتون استفاده کنید: ابتدا فایل را باز کرده و با خواندن یک نمونه (مثلاً 2048 بایت) از csv.Sniffer().has_header برای تشخیص هدر و از csv.Sniffer().sniff برای حدس جداکننده بهره ببرید. بعد از گرفتن نتیجه با f.seek(0) دوباره از ابتدای فایل بخوانید؛ اگر هدر وجود داشت از csv.DictReader و در غیر این صورت از csv.reader استفاده کنید و برای حالت بدون هدر عناوین خودکار بسازید (col1, col2, ...). هنگام نوشتن خروجی از newline='' و encoding مناسب استفاده کنید تا در پردازش داده‌ها (Data Science) و در اسکریپت‌های اتوماسیون رفتار قابل اعتمادی داشته باشید.

توسط پژوهشگر در 201 روز قبل ساعت 03:39
دسته بندی ها: Python Python for beginner
arman در 201 روز قبل ساعت 05:40

استفاده از csv.Sniffer برای تشخیص هدر و جداکننده با نمونه 2048 بایت معمولاً خوب است، اما ممکن است در برخی فایل‌ها به تشخیص نادرست برسد. پس از sniff باید با f.seek(0) از اول بخوانید تا ساختار واقعی دوباره اعتبارسنجی شود. اگر هدر وجود داشت از csv.DictReader استفاده کنید و در غیر این صورت به‌جای آن از csv.reader با عناوین خودکار مانند col1، col2 استفاده کنید. برای نوشتن خروجی از newline='' و encoding مناسب بهره ببرید تا در کارهای داده‌ای و اتوماشین رفتار قابل اعتماد باشد.

گزارش

1 پاسخ

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

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