الفرق بين المراجعتين لصفحة: «Python/dbm.gnu»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الوحدة <code>dbm‎.gnu</code> في بايثون}}</noinclude> تشبه هذه الوحدة إلى حدٍّ كبير الوحدة dbm،...'
 
لا ملخص تعديل
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الوحدة <code>dbm‎.gnu</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الوحدة <code>dbm‎.gnu</code> في بايثون}}</noinclude>


تشبه هذه الوحدة إلى حدٍّ كبير الوحدة dbm، ولكنّها تستخدم مكتبة غنو gdbm لتقديم بعض الوظائف الإضافية. ويجب الانتباه إلى أنّ صيغ الملفات التي تنشئها dbm.gnu و dbm.ndbm غير متوافقها مع بعضها البعض.
تشبه هذه الوحدة إلى حدٍّ كبير الوحدة [[Python/dbm|dbm]]، ولكنّها تستخدم مكتبة غنو gdbm لتقديم بعض الوظائف الإضافية. ويجب الانتباه إلى أنّ صيغ الملفات التي تنشئها <code>dbm.gnu</code> و <code>[[Python/dbm.ndbm|dbm.ndbm]]</code> غير متوافقة مع بعضها البعض.


تقدّم وحدة dbm.gnu واجهة للتعامل مع مكتبة GNU DBM. وتسلك كائنات dbm.gnu.gdbm سلوك كائنات الربط (القواميس) باستثناء أنّ المفاتيح والقيم تحوّل دائمًا إلى بايتات قبل تخزينها. لا تؤدي طباعة كائن gdbm إلى طباعة المفاتيح والقيم، ولا تدعم هذه الكائنات التابعين items()‎ و values()‎.
تقدّم وحدة <code>dbm.gnu</code> واجهة للتعامل مع مكتبة GNU DBM. وتسلك كائنات <code>dbm.gnu.gdbm</code> سلوك كائنات الربط ([[Python/dict|القواميس]]) باستثناء أنّ المفاتيح والقيم تحوّل دائمًا إلى بايتات قبل تخزينها. لا تؤدي طباعة كائن <code>gdbm</code> إلى طباعة المفاتيح والقيم، ولا تدعم هذه الكائنات التابعين <code>items()‎</code> و <code>values()‎</code>.


== الاستثناءات ==
== الاستثناءات ==
سطر 9: سطر 9:
=== الاستثناء <code>exception dbm.gnu.error</code> ===
=== الاستثناء <code>exception dbm.gnu.error</code> ===


يطلق هذا الاستثناء عند حدوث أخطاء خاصّة بالوحدة dbm.gnu، مثل أخطاء I/O. يطلق الاستثناء KeyError عند حدوث أخطاء تخصّ كائنات الربط مثل تحديد مفتاح غير صحيح.
يطلق هذا الاستثناء عند حدوث أخطاء خاصّة بالوحدة <code>dbm.gnu</code>، مثل أخطاء I/O. يطلق الاستثناء <code>KeyError</code> عند حدوث أخطاء تخصّ كائنات الربط مثل تحديد مفتاح غير صحيح.


== الدوال ==
== الدوال ==
سطر 16: سطر 16:


تفتح الدالة قاعدة بيانات gdbm وتعيد كائن <code>gdbm</code> .
تفتح الدالة قاعدة بيانات gdbm وتعيد كائن <code>gdbm</code> .
== كائنات gdbm ==
تمتلك كائنات <code>gdbm</code> التوابع التالية إضافة إلى التوابع الخاصة بالكائنات الشبيهة بالقواميس:
=== التابع <code>gdbm.firstkey()‎</code> ===
يمكن المرور على كل مفتاح في قاعدة البيانات باستخدام هذا التابع والتابع <code>nextkey()‎</code>. تكون عملية المرور مرتّبة بحسب قيم التقطيع الداخلية internal hash values الخاصّة بقاعدة بيانات <code>gdbm</code>، ولا تخزّن حسب قيم المفاتيح. يعيد هذا التابع المفتاح الذي تبدأ منه هذه العملية.
=== التابع <code>gdbm.nextkey(key)‎</code> ===
يعيد التابع المفتاح الذي يلي المفتاح <code>key</code> عند المرور على مفاتيح قاعدة البيانات.
تطبع الشيفرة التالية كل مفتاح في قاعدة البيانات <code>db</code> دون الحاجة إلى إنشاء [[Python/list|قائمة]] تتضمن هذه المفاتيح في الذاكرة:<syntaxhighlight lang="python3">
k = db.firstkey()
while k != None:
    print(k)
    k = db.nextkey(k) 
</syntaxhighlight>
=== التابع <code>gdbm.reorganize()‎</code> ===
إن كنت قد أجريت الكثير من عمليات الحذف وكنت ترغب بتقليص المساحة التي يشغلها ملف <code>gdbm</code>، فإنّ هذه الدالة ستعيد ترتيب قاعدة البيانات. لن تقلّل كائنات <code>gdbm</code> من حجم ملف قاعدة البيانات إلا باستخدام هذه الطريقة، وفيما عدا ذلك سيجري الاحتفاظ بالمساحة التي تشغلها الملفات المحذوفة ويعاد استخدامها عند إضافة أزواج (مفتاح، قيمة) جديدة.
=== التابع <code>gdbm.sync()‎</code> ===
يفرض هذا التابع كتابة أي بيانات غير مكتوبة على القرص الصلب عند فتح قاعدة البيانات في النمط السريع fast mode.
=== التابع <code>gdbm.close()‎</code> ===
يغلق التابع قاعدة بيانات <code>gdbm</code> المفتوحة.


== انظر أيضًا ==
== انظر أيضًا ==

المراجعة الحالية بتاريخ 21:07، 20 سبتمبر 2018


تشبه هذه الوحدة إلى حدٍّ كبير الوحدة dbm، ولكنّها تستخدم مكتبة غنو gdbm لتقديم بعض الوظائف الإضافية. ويجب الانتباه إلى أنّ صيغ الملفات التي تنشئها dbm.gnu و dbm.ndbm غير متوافقة مع بعضها البعض.

تقدّم وحدة dbm.gnu واجهة للتعامل مع مكتبة GNU DBM. وتسلك كائنات dbm.gnu.gdbm سلوك كائنات الربط (القواميس) باستثناء أنّ المفاتيح والقيم تحوّل دائمًا إلى بايتات قبل تخزينها. لا تؤدي طباعة كائن gdbm إلى طباعة المفاتيح والقيم، ولا تدعم هذه الكائنات التابعين items()‎ و values()‎.

الاستثناءات

الاستثناء exception dbm.gnu.error

يطلق هذا الاستثناء عند حدوث أخطاء خاصّة بالوحدة dbm.gnu، مثل أخطاء I/O. يطلق الاستثناء KeyError عند حدوث أخطاء تخصّ كائنات الربط مثل تحديد مفتاح غير صحيح.

الدوال

الدالة open()‎

تفتح الدالة قاعدة بيانات gdbm وتعيد كائن gdbm .

كائنات gdbm

تمتلك كائنات gdbm التوابع التالية إضافة إلى التوابع الخاصة بالكائنات الشبيهة بالقواميس:

التابع gdbm.firstkey()‎

يمكن المرور على كل مفتاح في قاعدة البيانات باستخدام هذا التابع والتابع nextkey()‎. تكون عملية المرور مرتّبة بحسب قيم التقطيع الداخلية internal hash values الخاصّة بقاعدة بيانات gdbm، ولا تخزّن حسب قيم المفاتيح. يعيد هذا التابع المفتاح الذي تبدأ منه هذه العملية.

التابع gdbm.nextkey(key)‎

يعيد التابع المفتاح الذي يلي المفتاح key عند المرور على مفاتيح قاعدة البيانات.

تطبع الشيفرة التالية كل مفتاح في قاعدة البيانات db دون الحاجة إلى إنشاء قائمة تتضمن هذه المفاتيح في الذاكرة:

k = db.firstkey()
while k != None:
    print(k)
    k = db.nextkey(k) 

التابع gdbm.reorganize()‎

إن كنت قد أجريت الكثير من عمليات الحذف وكنت ترغب بتقليص المساحة التي يشغلها ملف gdbm، فإنّ هذه الدالة ستعيد ترتيب قاعدة البيانات. لن تقلّل كائنات gdbm من حجم ملف قاعدة البيانات إلا باستخدام هذه الطريقة، وفيما عدا ذلك سيجري الاحتفاظ بالمساحة التي تشغلها الملفات المحذوفة ويعاد استخدامها عند إضافة أزواج (مفتاح، قيمة) جديدة.

التابع gdbm.sync()‎

يفرض هذا التابع كتابة أي بيانات غير مكتوبة على القرص الصلب عند فتح قاعدة البيانات في النمط السريع fast mode.

التابع gdbm.close()‎

يغلق التابع قاعدة بيانات gdbm المفتوحة.

انظر أيضًا

  • الوحدة dbm في بايثون.
  • الوحدة dbm.ndbm في بايثون.
  • الوحدة dbm.dumb في بايثون.

مصادر