الدرس 10 من 10
التعامل مع الملفات
عشان بياناتك متتمسحش أول ما البرنامج يقفل.
ليه الملفات؟
أي متغير بيتمسح أول ما البرنامج يقفل. لو عايز تحفظ حاجة (مصاريفك، سكور لعبة، داتا هتدرب عليها موديل) لازم تكتبها في ملف.
# "w" = write (creates file, or ERASES existing content!) with open("notes.txt", "w", encoding="utf-8") as f: f.write("Buy groceries\n") f.write("Call mom\n") # "a" = append (adds to the end, keeps old content) with open("notes.txt", "a", encoding="utf-8") as f: f.write("Study Python 1 hour\n") # "r" = read with open("notes.txt", "r", encoding="utf-8") as f: for line in f: print("-", line.strip())
💡 ليه with؟
with بتقفل الملف لوحدها لما تخلص حتى لو حصل خطأ. و encoding="utf-8" مهمة عشان الحروف العربي تتكتب صح.مثال واقعي: ملفات CSV
CSV أشهر شكل لتخزين الجداول: كل سطر صف، والأعمدة بينها فاصلة، وبيتفتح بالـ Excel. هتقابله كتير جداً في الـ Data Science.
import csv expenses = [ ["date", "category", "amount"], ["2026-09-01", "food", 320], ["2026-09-02", "transport", 85], ["2026-09-02", "food", 150], ] with open("expenses.csv", "w", newline="", encoding="utf-8") as f: csv.writer(f).writerows(expenses) # Read back and total by category totals = {} with open("expenses.csv", "r", encoding="utf-8") as f: for row in csv.DictReader(f): # each row becomes a dict cat = row["category"] totals[cat] = totals.get(cat, 0) + int(row["amount"]) print(totals)
⚠ "w" بتمسح القديملو فتحت ملف موجود بـ
"w" كل اللي فيه هيتمسح من غير ما يسألك. لو عايز تضيف، استخدم "a".