با استفاده از ماژول fileinput یک برنامه بنویسید که چند فایل CSV یا ورودی استاندارد را خوانده، یک ستون مشخص (با نام یا اندکس) را جمعآوری کند و میانگین آن ستون را چاپ کند.
2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:27 0.0
برای حل، از fileinput.input() برای خواندن خطوط از چند فایل یا stdin استفاده کنید، خط اولِ اولین فایل را بهعنوان هدر پردازش کرده و اندیس ستون مورد نظر را پیدا کنید، سپس با ماژول csv یا تقسیم رشتهها (split) هر سطر را تجزیه، مقادیر صحیح را جمع و شمار را نگه دارید و در پایان میانگین را محاسبه و چاپ کنید. میتوانید بهجای csv از csv.DictReader همراه با fileinput استفاده کنید یا برای راهحل ساده از csv.reader استفاده کنید. نکاتِ مفید: فقط یکبار هدر را نادیده بگیرید، مقدارهای خالی را نادیده بگیرید یا به عدد تبدیلشدنی بودن را چک کنید، و برای تست برنامه از ورودی استاندارد (echo "..." | python ...) یا چند فایل CSV استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از fileinput برای خواندن همزمان چند فایل یا stdin گزینه خوبی است، اما برای پیدا کردن اندیس ستون باید هدر مانند خط اول را بهدرستی استخراج کنید. اگر فایلهای متعددی با هدر جداگانه دارید، باید هر فایل را بهطور جداگانه از هدر بگذرید یا از ویژگیهای فایلنام و خطشمیره استفاده کنید تا از دوبارهخوانی هدر جلوگیری شود. مقادیر خالی را فیلتر کنید و تبدیل به عدد را با دقت انجام دهید تا میانگین نهایی درست باشد (float یا Decimal هر دو گزینه هستند). استفاده از csv.DictReader همراه با fileinput میتواند پیادهسازی را سادهتر کند یا میتوانید از csv.reader یا تقسیمخطی استفاده کنید.
گزارش