حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش کار با فایل در پایتون؛ CSV، JSON و گزارش‌گیری

تبدیل تعداد و قیمت CSV به عدد صحیح در پایتون

خواندن CSV با پایتون؛ ستون‌ها، نقل‌قول و عددهای متنی · 0٪

✍️ پیش از محاسبه گزارش باید نوع داده‌ها را آماده کنیم. رشته '3' کنار رشته '20' هنوز یک تعداد و قیمت قابل ضرب نیست؛ در پایتون ضرب رشته در عدد، تکرار متن است و جمع رشته‌ها اتصال می‌سازد. بنابراین فقط ستون‌های عددی را با int تبدیل می‌کنیم و نام محصول را رشته نگه می‌داریم.

مثلاً ردیف «مداد، سه، بیست» در داده واقعی این درس با رقم‌های متنی مداد,3,20 می‌آید و باید به رکوردی با quantity برابر عدد سه و unit_price برابر عدد بیست تبدیل شود. در این فعالیت داده‌ها معتبرند؛ بحث عدد خراب و حذف ردیف را در بخش بعد جدا تمرین می‌کنیم.

تابع مستقل خودت را بنویس: فایل نمونه را بساز، با DictReader بخوان و برای هر ردیف یک دیکشنری تازه با سه کلید خواسته‌شده بساز. header ثابت است و product را فعلاً پاک‌سازی نکن. خطای رایج، باقی گذاشتن یکی از دو ستون عددی به صورت رشته یا حذف محصولی با قیمت صفر است؛ صفر قیمت معتبر است. اگر فقط عنوان باشد، حلقه هیچ ردیفی ندارد و خروجی خالی خواهد بود. از کتابخانه شخص ثالث استفاده نکن؛ csv و تبدیل‌های ساده کافی‌اند.

فعالیت شما

تابع numeric_csv(text) متن CSV با header دقیق product,quantity,unit_price و ردیف‌های معتبر می‌گیرد؛ داخل همان اجرا فایل UTF-8 بسازد و بخواند. خروجی فهرست دیکشنری‌های product رشته دست‌نخورده، quantity=int و unit_price=int است. تعداد صحیح مثبت و قیمت صحیح نامنفی تضمین شده‌اند؛ فقط header یا متن خالی [] است. برای 'مداد,3,20' خروجی رکورد با quantity:3 و unit_price:20 است؛ کامای نقل‌قول‌دار را رعایت کن.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

import tempfile
from pathlib import Path
import csv

def numeric_csv(text):
    # TODO: build a fixture, read dictionaries and convert the two numeric fields
    pass