الفرق بين المراجعتين لصفحة: «Python/dbm/open»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>dbm.open()</code> في بايثون}}</noinclude> تفتح الدالة الملف المعطى وتعيد كائنً...' |
لا ملخص تعديل |
||
سطر 8: | سطر 8: | ||
dbm.open(file, flag='r', mode=0o666) | dbm.open(file, flag='r', mode=0o666) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== المعاملات == | == المعاملات == | ||
=== <code>file</code> === | === <code>file</code> === | ||
إن كان ملف قاعدة البيانات موجودًا أصلًا، فستستخدم الدالة | إن كان ملف قاعدة البيانات موجودًا أصلًا، فستستخدم الدالة <code>[[Python/dbm/whichdb|whichdb()]]</code> لتحديد نوعه والوحدة المناسبة للاستخدام، أما إن لم يكن الملف موجودًا فستستخدم الدالة أول وحدة قابلة للاستيراد من الوحدات <code>[[Python/dbm.gnu|dbm.gnu]]</code> أو <code>[[Python/dbm.ndbm|dbm.ndbm]]</code> أو <code>[[Python/dbm.dumb|dbm.dumb]]</code>. | ||
=== <code>flag</code> === | === <code>flag</code> === | ||
يأخذ المعامل الاختياري flag إحدى القيم التالية: | يأخذ المعامل الاختياري <code>flag</code> إحدى القيم التالية: | ||
{| class="wikitable" | |||
!القيمة | |||
!الوصف | |||
|- | |||
|<code>'r'</code> | |||
|فتح قاعدة البيانات للقراءة فقط (القيمة الافتراضية). | |||
|- | |||
|<code>'w'</code> | |||
|فتح قاعدة البيانات للكتابة والقراءة. | |||
|- | |||
|<code>'c'</code> | |||
|فتح قاعدة البيانات للكتابة والقراءة، وإنشائها في حال عدم وجودها. | |||
|- | |||
|<code>'n'</code> | |||
|تنشئ الدالة قاعدة بيانات جديدة وفارغة، وتفتحها للكتابة والقراءة. | |||
|} | |||
=== <code>mode</code> === | === <code>mode</code> === | ||
المعامل الاختياري mode هو وضع يونكس Unix mode للملف المعطى، ويستخدم بعد إنشاء قاعدة البيانات فقط. يأخذ هذا المعامل القيمة الثمانية الافتراضية 0o666 (وسيجري تعديله بواسطة الأمر umask). | المعامل الاختياري <code>mode</code> هو وضع يونكس Unix mode للملف المعطى، ويستخدم بعد إنشاء قاعدة البيانات فقط. يأخذ هذا المعامل القيمة الثمانية الافتراضية <code>0o666</code> (وسيجري تعديله بواسطة الأمر <code>umask</code>). | ||
== القيمة المعادة == | == القيمة المعادة == | ||
تفتح الدالة الملف المعطى وتعيد كائنًا موافقًا له. | تفتح الدالة الملف المعطى وتعيد كائنًا موافقًا له. | ||
يدعم الكائن المعاد بواسطة الدالة open() نفس الوظائف التي | يدعم الكائن المعاد بواسطة الدالة <code>open()</code> نفس الوظائف التي تدعمها [[Python/dict|القواميس]]، ويمكن تخزين المفاتيح وقيمها المقابلة واسترجاعها وحذفها، ويمكن استخدام العامل <code>in</code> والتابع [[Python/dict/keys|<code>keys()</code>]] كذلك، إضافة إلى التابعين <code>[[Python/dict/get|get()]]</code> و <code>[[Python/dict/setdefault|setdefault()]]</code>. | ||
ملاحظة: أصبح بالإمكان استخدام التابعين get() و setdefault() في جميع وحدات قواعد البيانات. | '''ملاحظة:''' أصبح بالإمكان استخدام التابعين <code>[[Python/dict/get|get()]]</code> و <code>[[Python/dict/setdefault|setdefault()]]</code> في جميع وحدات قواعد البيانات. | ||
تخزن المفاتيح والقيم دائمًا كبايتات، وهذا يعني أنّ السلاسل النصية تحوّل ضمنيًا إلى الترميز الافتراضي قبل تخزينها. | تخزن المفاتيح والقيم دائمًا كبايتات، وهذا يعني أنّ السلاسل النصية تحوّل ضمنيًا إلى الترميز الافتراضي قبل تخزينها. | ||
يمكن استخدام هذه الكائنات مع عبارة | يمكن استخدام هذه الكائنات مع عبارة <code>with</code>، والتي ستغلق هذه الكائنات تلقائيًا بعد الانتهاء منها. | ||
ملاحظة: في الإصدار 3.4 أضيف دعم لبروتوكول إدارة السياق context management protocol إلى الكائنات المعادة من الدالة open(). | '''ملاحظة:''' في الإصدار 3.4 أضيف دعم لبروتوكول إدارة السياق context management protocol إلى الكائنات المعادة من الدالة <code>open()</code>. | ||
== أمثلة == | == أمثلة == | ||
سطر 48: | سطر 63: | ||
db['www.cnn.com'] = 'Cable News Network' | db['www.cnn.com'] = 'Cable News Network' | ||
# لاحظ أن المفاتيح تعدّ بايتات الآن. | # لاحظ أن المفاتيح تعدّ بايتات الآن. | ||
assert db[b'www.python.org'] == b'Python Website' | assert db[b'www.python.org'] == b'Python Website' | ||
# لاحظ كيف أنّ القيم الآن أصبحت بايتات. | # لاحظ كيف أنّ القيم الآن أصبحت بايتات. | ||
assert db['www.cnn.com'] == b'Cable News Network' | assert db['www.cnn.com'] == b'Cable News Network' | ||
# يمكن استخدام التوابع المستخدمة مع القواميس. | # يمكن استخدام التوابع المستخدمة مع القواميس. | ||
print(db.get('python.org', b'not present')) | print(db.get('python.org', b'not present')) | ||
# يؤدي تخزين مفاتيح أو قيم غير نصية إلى إطلاق استثناء | # يؤدي تخزين مفاتيح أو قيم غير نصية إلى إطلاق استثناء | ||
# غالبًا ما يكون من نوع | # TypeError غالبًا ما يكون من نوع | ||
db['www.yahoo.com'] = 4 | db['www.yahoo.com'] = 4 | ||
# تغلق قاعدة البيانات تلقائيًا عند الخروج من عبارة | # with تغلق قاعدة البيانات تلقائيًا عند الخروج من عبارة | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== انظر أيضًا == | == انظر أيضًا == | ||
*الدالة <code>[[Python/dbm.gnu|dbm.gnu.open()]]</code> : تفتح الدالة قاعدة بيانات gdbm وتعيد كائن <code>gdbm</code>. | |||
*الدالة <code>[[Python/dbm.ndbm|dbm.ndbm.open()]]</code> : تفتح الدالة قاعدة بيانات dbm وتعيد كائن <code>ndbm</code>. | |||
*الدالة <code>[[Python/dbm.dumb|dbm.dumb.open()]]</code> : تفتح الدالة قاعدة بيانات dumbdbm وتعيد كائن <code>dumbdbm</code>. | |||
== مصادر == | == مصادر == | ||
[https://docs.python.org/3/library/dbm.html#dbm.open صفحة Interfaces to Unix “databases” في توثيق بايثون الرسمي.] | [https://docs.python.org/3/library/dbm.html#dbm.open صفحة Interfaces to Unix “databases” في توثيق بايثون الرسمي.] |
المراجعة الحالية بتاريخ 20:57، 20 سبتمبر 2018
تفتح الدالة الملف المعطى وتعيد كائنًا موافقًا له.
البنية العامة
dbm.open(file, flag='r', mode=0o666)
المعاملات
file
إن كان ملف قاعدة البيانات موجودًا أصلًا، فستستخدم الدالة whichdb()
لتحديد نوعه والوحدة المناسبة للاستخدام، أما إن لم يكن الملف موجودًا فستستخدم الدالة أول وحدة قابلة للاستيراد من الوحدات dbm.gnu
أو dbm.ndbm
أو dbm.dumb
.
flag
يأخذ المعامل الاختياري flag
إحدى القيم التالية:
القيمة | الوصف |
---|---|
'r'
|
فتح قاعدة البيانات للقراءة فقط (القيمة الافتراضية). |
'w'
|
فتح قاعدة البيانات للكتابة والقراءة. |
'c'
|
فتح قاعدة البيانات للكتابة والقراءة، وإنشائها في حال عدم وجودها. |
'n'
|
تنشئ الدالة قاعدة بيانات جديدة وفارغة، وتفتحها للكتابة والقراءة. |
mode
المعامل الاختياري mode
هو وضع يونكس Unix mode للملف المعطى، ويستخدم بعد إنشاء قاعدة البيانات فقط. يأخذ هذا المعامل القيمة الثمانية الافتراضية 0o666
(وسيجري تعديله بواسطة الأمر umask
).
القيمة المعادة
تفتح الدالة الملف المعطى وتعيد كائنًا موافقًا له.
يدعم الكائن المعاد بواسطة الدالة open()
نفس الوظائف التي تدعمها القواميس، ويمكن تخزين المفاتيح وقيمها المقابلة واسترجاعها وحذفها، ويمكن استخدام العامل in
والتابع keys()
كذلك، إضافة إلى التابعين get()
و setdefault()
.
ملاحظة: أصبح بالإمكان استخدام التابعين get()
و setdefault()
في جميع وحدات قواعد البيانات.
تخزن المفاتيح والقيم دائمًا كبايتات، وهذا يعني أنّ السلاسل النصية تحوّل ضمنيًا إلى الترميز الافتراضي قبل تخزينها.
يمكن استخدام هذه الكائنات مع عبارة with
، والتي ستغلق هذه الكائنات تلقائيًا بعد الانتهاء منها.
ملاحظة: في الإصدار 3.4 أضيف دعم لبروتوكول إدارة السياق context management protocol إلى الكائنات المعادة من الدالة open()
.
أمثلة
في المثال التالي تضاف بعض أسماء الاستضافات والعناوين المرتبطة بها إلى قاعدة البيانات، ثم تطبع محتوياتها في المخرجات:
import dbm
# فتح قاعدة البيانات وإنشاؤها إن دعت الحاجة إلى ذلك
with dbm.open('cache', 'c') as db:
# حفظ بعض البيانات
db[b'hello'] = b'there'
db['www.python.org'] = 'Python Website'
db['www.cnn.com'] = 'Cable News Network'
# لاحظ أن المفاتيح تعدّ بايتات الآن.
assert db[b'www.python.org'] == b'Python Website'
# لاحظ كيف أنّ القيم الآن أصبحت بايتات.
assert db['www.cnn.com'] == b'Cable News Network'
# يمكن استخدام التوابع المستخدمة مع القواميس.
print(db.get('python.org', b'not present'))
# يؤدي تخزين مفاتيح أو قيم غير نصية إلى إطلاق استثناء
# TypeError غالبًا ما يكون من نوع
db['www.yahoo.com'] = 4
# with تغلق قاعدة البيانات تلقائيًا عند الخروج من عبارة
انظر أيضًا
- الدالة
dbm.gnu.open()
: تفتح الدالة قاعدة بيانات gdbm وتعيد كائنgdbm
. - الدالة
dbm.ndbm.open()
: تفتح الدالة قاعدة بيانات dbm وتعيد كائنndbm
. - الدالة
dbm.dumb.open()
: تفتح الدالة قاعدة بيانات dumbdbm وتعيد كائنdumbdbm
.
مصادر
صفحة Interfaces to Unix “databases” في توثيق بايثون الرسمي.