جدول متنی CSV
جدول CSV ردیفهایی از متن است. هر خط یک ردیف است و ویرگول مرز خانه را نشان میدهد. صفحهٔ قبل یک دیکشنری را در یک خط میگذاشت. اینجا خود خط، ردیف است. فایلی باز نمیشود. ردیفها در یک جعبهٔ متن، داخل حافظه، میمانند.
import csv
from io import StringIO
box = StringIO()
pen = csv.writer(box)
pen.writerow(["name", "city"])
pen.writerow(["mina", "qom"])
pen.writerow(["lida", "yazd, iran"])
print(box.getvalue(), end="")
روی صفحه سه خط دیده میشود. خط اول name,city است. اینها برچسباند، نه مهمان. خط دوم mina,qom است، پس mina و qom دو خانهاند. خط سوم lida,"yazd, iran" است. گیومه هست چون خود شهر ویرگول دارد. end="" به print میگوید خط اضافه نگذارد، پس صفحه روی همان خط سوم میماند. جعبه خودش با پایان خط تمام شده بود.
import csv
from io import StringIO
text = "name,city\nmina,qom\nlida,\"yazd, iran\"\n"
box = StringIO(text)
rows = list(csv.reader(box))
print(rows[1][0])
print(rows[2][1])
اول mina دیده میشود و بعد yazd, iran. این برنامه از نو شروع میشود و نویسنده را دوباره اجرا نمیکند. rows[1][0] خانهٔ اول ردیف دوم است، یعنی مهمان mina. rows[2][1] شهر است. گیومهها جزو شهر نیستند. آن ردیف هنوز دو خانه دارد و iran کنار yazd میماند.
اگر خط سوم را خودتان روی هر ویرگول ببرید، iran یک خانهٔ سوم به نظر میرسد. خواننده آنجا نمیبرد. گیومه یک خانه را مشخص میکند و بعد کنار میرود. open و Path در این برنامهها نیستند. JSON هم به کار نرفته. چیزی در فایل ذخیره نمیشود.
صفحهٔ بعد ماژولها است. این صفحه فقط ردیفها را مینویسد و خانهها را برمیگرداند.
ردیفها، بعد خانهها
صفحهٔ برنامهٔ اول name,city است، بعد mina,qom، بعد lida,"yazd, iran". خواننده سپس mina و yazd, iran را نشان میدهد. گیومه جزو شهر نیست. فایلی باز نمیشود. صفحهٔ بعد ماژولها است.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود