وقتی هر ماه یک فایل CSV از فروشگاه یا ابزار گزارشگیری دریافت میشود، کنار هم گذاشتن آنها فقط بخشی از کار است؛ باید بررسی کرد که در این فرایند ردیفی از دست نرفته باشد. این آموزش یک script در Python معرفی میکند که فایلها را ادغام میکند و تعداد ردیفهای هر فایل، مجموع ورودی و مجموع خروجی را گزارش میدهد. ابزارهای اصلی آن csv، argparse و pathlib از standard library هستند و به pandas نیازی ندارد. پیشنیاز آموزش Python 3.9 یا جدیدتر است.
در مرحلهٔ اول، فقط فایلهای دارای پسوند .csv در سطح اول پوشه انتخاب و بر اساس نام مرتب میشوند. در نمونهٔ آموزش، این ترتیب باعث میشود فایلهای ماهانه پشت سر هم قرار بگیرند. سپس csv.DictReader اولین ردیف هر فایل را بهعنوان header میخواند. فایل با encoding برابر utf-8-sig باز میشود تا خروجی UTF-8 ابزارهایی مانند Excel که ممکن است با BOM شروع شود نیز خوانده شود.
ردیفهای کاملاً خالی کنار گذاشته میشوند و در هیچکدام از دو سمت مقایسه شمرده نمیشوند؛ اما وجود حتی یک خانهٔ غیرخالی برای نگهداشتن ردیف کافی است. اگر فایلها ستونهای متفاوتی داشته باشند، خروجی همهٔ ستونها را به ترتیب اولین مشاهده نگه میدارد. مقدار ستونهایی که در یک ردیف وجود ندارند، خالی نوشته میشود. نامهایی مانند order_id و Order ID هم دو ستون جدا محسوب میشوند.
این script پاکسازی داده انجام نمیدهد: تاریخها را یکدست نمیکند، مبلغها را تفسیر نمیکند و نام ستونها را تغییر نمیدهد. ردیفهای کاملاً تکراری را هم فقط میشمارد و نگه میدارد. معیار تکراریبودن، یکسانبودن مقدار همهٔ ستونهاست؛ حتی یک فاصلهٔ اضافی در انتهای یک خانه میتواند دو ردیف را متفاوت کند.
دادههای نمونه کاملاً ساختگیاند. سه فایل بهترتیب ۴، ۵ و ۳ ردیف دارند؛ بنابراین نتیجهٔ مورد انتظار ۱۲ ردیف ورودی، ۱۲ ردیف خروجی و یک ردیف تکراریِ حفظشده است. گزارش نهایی وضعیت OK یا MISMATCH را نشان میدهد. آموزش تأکید میکند که در صورت نابرابری تعدادها، برنامه باید با وضعیت خروج غیرصفر پایان یابد. این بررسی فقط دربارهٔ تعداد ردیفهاست، نه درستبودن یا تمیزبودن محتوای آنها.



