تقنية

dbm.dumb في بايثون: هل w يفرغ البيانات مثل n؟

فتح القاعدة المؤقتة مع بقاء المفتاح
الفتح بـw. [1] [2]

نقارن فتح قاعدة موجودة بعد إغلاقها. [1] [2]

الخلاصة السريعة

لا؛ w يبقي السجل هنا، وn يبدأ قاعدة فارغة. [1] [2]

  • ننشئ قاعدة مؤقتة بمفتاح card وقيمة R7. [1] [2]
  • إعادة فتحها بـw تطبع [b'card']. [1] [2]
  • إعادة فتحها بـn تطبع []. [1] [2]
  • يغلق كل with كائن القاعدة قبل الفتح التالي. [1] [2]
  • اختبرنا dbm.dumb في 3.12.14؛ البيانات مؤقتة تخص المثال. [1] [2]

المثال

import dbm.dumb as d,tempfile
with tempfile.TemporaryDirectory() as folder:
 p=folder+'/own'
 with d.open(p,'n') as db:
  db['card']='R7'
 with d.open(p,'w') as db:
  print(db.keys())
 with d.open(p,'n') as db:
  print(db.keys())

[1] [2]

فتح موجود أم بدء جديد؟

الفتح هنا بـw للقراءة والكتابة في قاعدة موجودة؛ لا يعني حرف الكتابة تفريغها. أما n فينشئ قاعدة جديدة فارغة ولو وجدت قاعدة بالاسم نفسه. [1] [2]

فتح قاعدة جديدة فارغة
الفتح بـn. [1] [2]

نطاق الفحص

إذا غابت القاعدة، يرفع w خطأ في فحصنا، بينما ينشئها n. عند استبدال الفتح الثاني بـc يبقى المفتاح أيضًا. لا نقيس الأداء أو التزامن أو استعادة بيانات؛ كل ملف هنا داخل مجلد مؤقت جديد. [1] [2]

المراجع

  1. Python 3.12: dbm.dumb flags
  2. CPython 3.12.14: dbm/dumb.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.