الفصل 24: إدارة الملفات
مقدمة
إدارة الملفات ضرورية لأي تطبيق حقيقي. لغة ص توفر مكتبة نظام_ملفات ومكتبة ملفات لجميع عمليات الملفات.
العمليات الأساسية
sad
استورد نظام_ملفات من "نظام_ملفات"
# كتابة ملف نصي
نظام_ملفات.اكتب("ملاحظات.txt"، "مرحباً من لغة ص!\nالسطر الثاني")
# قراءة ملف
متغير محتوى = نظام_ملفات.اقرأ("ملاحظات.txt")
اطبع_سطر(محتوى)
# التحقق من وجود ملف
إذا (نظام_ملفات.موجود("ملاحظات.txt"))
اطبع_سطر("الملف موجود ✅")
نهاية
# حذف ملف
نظام_ملفات.احذف("ملاحظات.txt")قراءة سطر بسطر
sad
استورد نظام_ملفات من "نظام_ملفات"
# قراءة سطر بسطر
متغير سطور = نظام_ملفات.اقرأ_سطور("ملاحظات.txt")
لكل سطر في سطور
اطبع_سطر("> " + سطر)
نهايةالإلحاق بملف موجود
sad
استورد نظام_ملفات من "نظام_ملفات"
# إلحاق سطر جديد
نظام_ملفات.ألحق("سجل.txt"، "سجل جديد\n")التعامل مع المجلدات
sad
استورد نظام_ملفات من "نظام_ملفات"
# إنشاء مجلد
نظام_ملفات.أنشئ_مجلد("بيانات")
# سرد محتويات مجلد
متغير ملفات = نظام_ملفات.سرد(".")
لكل ملف في ملفات
اطبع_سطر(ملف)
نهايةمثال: نظام يوميات
sad
استورد نظام_ملفات من "نظام_ملفات"
استورد جسون من "جسون"
صنف يوميات
خاص متغير _ملف = "يوميات.json"
خاص متغير _مدخلات = []
باني()
إذا (نظام_ملفات.موجود(هذا._ملف))
متغير بيانات = نظام_ملفات.اقرأ(هذا._ملف)
هذا._مدخلات = جسون.فك(بيانات)
نهاية
نهاية
دالة أضف(نص)
متغير مدخل = {
"وقت": الآن()،
"نص": نص
}
هذا._مدخلات = هذا._مدخلات + [مدخل]
نظام_ملفات.اكتب(هذا._ملف، جسون.ترميز(هذا._مدخلات))
نهاية
دالة اطبع()
لكل م في هذا._مدخلات
اطبع_سطر(م["وقت"] + ": " + م["نص"])
نهاية
نهاية
نهاية
متغير ي = جديد يوميات()
ي.أضف("فتحت التطبيق")
ي.أضف("اجتماع العمل")
ي.اطبع()معالجة الأخطاء
sad
استورد نظام_ملفات من "نظام_ملفات"
دالة اقرأ_آمن(مسار)
حاول
ارجع نظام_ملفات.اقرأ(مسار)
امسك (خ)
اطبع_سطر("خطأ في قراءة الملف: " + خ)
ارجع ""
نهاية
نهايةجدول عمليات الملفات
| العملية | الدالة | مثال |
|---|---|---|
| كتابة | اكتب(مسار، محتوى) | يخلق أو يكتب ملف |
| قراءة | اقرأ(مسار) | يرجع المحتوى كاملاً |
| إلحاق | ألحق(مسار، نص) | يضيف لنهاية الملف |
| حذف | احذف(مسار) | يحذف الملف |
| وجود | موجود(مسار) | منطقي: صحيح/خطأ |
| سرد | سرد(مجلد) | قائمة الملفات |
تمرين
اكتب دالة تحسب تكرار كلمة في ملف نصي وتكتب النتائج في ملف JSON.
الحل
sad
استورد نظام_ملفات من "نظام_ملفات"
استورد جسون من "جسون"
دالة عد_كلمات(مسار)
متغير نص = نظام_ملفات.اقرأ(مسار)
متغير كلمات = قسم(نص، " ")
متغير تكرار = {}
لكل ك في كلمات
إذا (ك في تكرار)
تكرار[ك] = تكرار[ك] + 1
وإلا
تكرار[ك] = 1
نهاية
نهاية
نظام_ملفات.اكتب(مسار + "_تكرار.json"، جسون.ترميز(تكرار))
ارجع تكرار
نهاية