مدیریت فایلهای مختلف
### داستان بیست و چهارم: مدیریت فایلهای مختلف
آراد که حالا با نحوه کار کردن با فایلها آشنا شده بود، تصمیم گرفت پروژهاش را گسترش دهد. او میخواست علاوه بر ذخیره خاطرات روزانهاش در فایل متنی، اطلاعات دیگری مثل لیست کتابها و فیلمها را نیز ذخیره و مدیریت کند. اما آراد نمیدانست که چطور میتواند اطلاعات را در فرمتهای مختلف مثل CSV ذخیره کند و از آنها استفاده کند.
آراد به سینا پیام داد: «سینا، میخواهم اطلاعات بیشتری مثل لیست کتابها و فیلمها رو ذخیره کنم، اما به جای اینکه همه رو توی یک فایل متنی نگه دارم، میخواهم از فرمتهای مختلفی مثل CSV استفاده کنم. چطور میتوانم این کار رو انجام بدم؟»
سینا جواب داد: «خیلی خوبه آراد! برای این کار میتونی از کتابخانههای مختلف پایتون استفاده کنی. برای کار با فایلهای CSV، میتونی از کتابخانه `csv` استفاده کنی که به طور خاص برای این نوع فایلها طراحی شده.»
#### کار با فایلهای CSV
سینا برای آراد توضیح داد که فرمت CSV (Comma Separated Values) یک فرمت متنی است که دادهها در آن با کاما از هم جدا میشوند. این فرمت به ویژه برای ذخیره جداول دادهها مانند لیست کتابها، فیلمها یا اطلاعات دیگر بسیار مفید است.
سینا کد زیر را نوشت تا آراد را با نحوه نوشتن دادهها در یک فایل CSV آشنا کند:
“`python
import csv
# دادهها برای ذخیره کردن
کتابها = [
[“نام کتاب”, “نویسنده”, “سال انتشار”, “تعداد صفحات”],
[“کتاب اول”, “نادر ابراهیمی”, ۱۳۸۰, ۳۰۰],
[“کتاب دوم”, “جواد مجابی”, ۱۳۹۰, ۲۵۰],
[“کتاب سوم”, “آلبر کامو”, ۱۳۴۵, ۲۰۰]
]
# باز کردن فایل CSV برای نوشتن
with open(“کتابها.csv”, “w”, newline=””, encoding=”utf-8″) as فایل:
نویسنده = csv.writer(فایل)
نویسنده.writerows(کتابها)
“`
سینا توضیح داد که در این کد از `csv.writer` برای نوشتن دادهها در فایل CSV استفاده شده است. `writerows()` برای نوشتن چندین ردیف داده در فایل به کار میرود. آراد متوجه شد که با استفاده از این روش، میتواند دادههای جداول مختلف خود را به راحتی در فایلهای CSV ذخیره کند.
#### خواندن از فایل CSV
سینا به آراد نشان داد که چطور میتواند دادهها را از یک فایل CSV بخواند:
“`python
import csv
# باز کردن فایل CSV برای خواندن
with open(“کتابها.csv”, “r”, encoding=”utf-8″) as فایل:
خواننده = csv.reader(فایل)
for ردیف in خواننده:
print(ردیف)
“`
سینا توضیح داد که در این کد از `csv.reader` برای خواندن دادهها از فایل CSV استفاده شده است. `for` به این معناست که هر ردیف از دادهها به طور جداگانه خوانده میشود و سپس چاپ میشود. آراد با دیدن این کد متوجه شد که چطور میتواند به راحتی دادههای ذخیرهشده در فایل CSV را بخواند و استفاده کند.
#### استفاده از فرمتهای مختلف فایل
آراد که حالا با کار کردن با فایلهای CSV آشنا شده بود، میخواست بداند که آیا میتواند از فرمتهای دیگری مثل فایلهای متنی ساده یا JSON نیز برای ذخیره دادهها استفاده کند. سینا به او گفت: «بله، علاوه بر فایلهای CSV، میتونی از فرمتهای متنی و حتی JSON هم برای ذخیرهسازی دادهها استفاده کنی. برای مثال، با استفاده از `json` میتونی دادهها رو به صورت ساختارمندتر ذخیره کنی.»
#### ذخیره دادهها در فایل متنی
سینا یک مثال دیگر از ذخیره دادهها در فایل متنی ساده به آراد نشان داد:
“`python
# ذخیره کردن دادهها در فایل متنی
with open(“اطلاعات.txt”, “w”, encoding=”utf-8″) as فایل:
فایل.write(“نام کتاب: کتاب اول\n”)
فایل.write(“نویسنده: نادر ابراهیمی\n”)
فایل.write(“سال انتشار: ۱۳۸۰\n”)
فایل.write(“تعداد صفحات: ۳۰۰\n”)
“`
در اینجا، دادهها به صورت ساده در یک فایل متنی نوشته میشوند. آراد متوجه شد که این روش برای ذخیره دادهها به صورت متنی و غیرساختارمند مناسب است.
#### ذخیره دادهها در فایل JSON
سینا همچنین به آراد نشان داد که چطور میتواند دادهها را در فرمت JSON ذخیره کند. JSON یک فرمت بسیار رایج برای ذخیره دادهها به صورت ساختارمند است و معمولاً برای تبادل دادهها بین سیستمها استفاده میشود.
“`python
import json
# دادهها برای ذخیره کردن
کتاب = {
“نام کتاب”: “کتاب اول”,
“نویسنده”: “نادر ابراهیمی”,
“سال انتشار”: ۱۳۸۰,
“تعداد صفحات”: ۳۰۰
}
# ذخیره دادهها در فایل JSON
with open(“کتاب.json”, “w”, encoding=”utf-8″) as فایل:
json.dump(کتاب, فایل, ensure_ascii=False)
“`
سینا توضیح داد که در اینجا از `json.dump()` برای ذخیره دادهها در فایل JSON استفاده شده است. این فرمت برای ذخیره دادههای پیچیدهتر و قابل انتقال بین سیستمها مناسب است.
#### نتیجهگیری
آراد گفت: «واو! حالا میفهمم که چطور میتونم دادهها رو در فرمتهای مختلف ذخیره کنم و بخونم. این خیلی جالب بود که میتونم از CSV، JSON و حتی فایلهای متنی برای ذخیره دادهها استفاده کنم.»
سینا جواب داد: «درسته آراد! استفاده از فرمتهای مختلف به تو این امکان رو میده که دادهها رو به شکلهایی که برای برنامهات بهتر هست ذخیره کنی و بخونی.»
آراد با لبخند گفت: «ممنون سینا! حالا میدونم چطور میتونم فایلهای مختلف رو مدیریت کنم و دادهها رو به شکلهای مختلف ذخیره کنم!»