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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الصنف <code>csv.DictWriter()‎‎</code> في بايثون}}</noinclude> تنشئ الدالة البانية لهذا الصنف كائ...'
 
لا ملخص تعديل
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 14: سطر 14:


=== <code>fieldnames</code> ===
=== <code>fieldnames</code> ===
تسلسل من المفاتيح التي تحدّد ترتيب القيم في القاموس الذي سيمرّر إلى التابع writerow()‎ لكتابة الأسطر في الملف المعطى.
تسلسل من المفاتيح التي تحدّد ترتيب القيم في القاموس الذي سيمرّر إلى التابع <code>writerow()</code>‎ لكتابة الأسطر في الملف المعطى.


يجب الانتباه إلى أنّه وعلى عكس الصنف DictReader فإنّ المعامل fieldnames في الصنف DictWriter ليس اختياريًا.
يجب الانتباه إلى أنّه وعلى عكس الصنف <code>[[Python/DictReader|DictReader]]</code> فإنّ المعامل <code>fieldnames</code> في الصنف <code>DictWriter</code> ليس اختياريًا.


=== <code>restval</code> ===
=== <code>restval</code> ===
معامل اختياري، يحدّد القيمة التي ستُستخدم في حال وجود نقص في أسماء الحقول في القاموس الممرّر.
معامل اختياري، يحدّد القيمة التي ستُستخدم في حال وجود نقص في أسماء الحقول في القاموس الممرّر.


إن تضمن القاموس الممرّر إلى التابع writerow()‎ مفتاحًا غير موجود في المعامل fieldnames، فإنّ المعامل extrasaction يحدّد الإجراء الذي يجب اتخاذه في هذه الحالة. فإن أخذ هذا المعامل القيمة 'raise' (وهي القيمة الافتراضية) يطلق التابع الاستثناء ValueError، وإن أخذ المعامل القيمة 'ignore' سيتجاهل التابع القيم الإضافية في القاموس.  
=== <code>extrasaction</code> ===
إن تضمن القاموس الممرّر إلى التابع <code>writerow()</code>‎ مفتاحًا غير موجود في المعامل <code>fieldnames</code>، فإنّ المعامل <code>extrasaction</code> يحدّد الإجراء الذي يجب اتخاذه في هذه الحالة. فإن أخذ هذا المعامل القيمة <code>'raise'</code> (وهي القيمة الافتراضية) يطلق التابع الاستثناء <code>ValueError</code>، وإن أخذ المعامل القيمة <code>'ignore'</code> سيتجاهل التابع القيم الإضافية في القاموس.  


تمرّر بقية المعاملات الاختيارية أو المفتاحية إلى نسخة [[Python/csv/reader|كائن القراءة]] الضمني.
تمرّر بقية المعاملات الاختيارية أو المفتاحية إلى نسخة [[Python/csv/writer|كائن الكتابة]] الضمني.


== أمثلة ==
== أمثلة ==
سطر 43: سطر 44:
</syntaxhighlight>
</syntaxhighlight>


== توابع كائنات DictWriter ==
تمتلك كائنات <code>DictWriter</code> التوابع العامة التالية:
===التابع <code>[[Python/DictWriter/writeheader|DictWriter.writeheader()]]‎</code>===
يكتب التابع صفًّا مع أسماء الحقول (كما هو محدّد في الدالة البانية).
'''ملاحظة:''' هذا التابع جديد في الإصدار 3.2.
== انظر أيضًا ==
== انظر أيضًا ==
* الدالة <code>[[Python/csv/writer|csv.writer()‎]]</code>: تعيد الدالة كائن قراءة مهمّته هي المرور على جميع الأسطر في ملف csv المعطى.
* الدالة <code>[[Python/csv/writer|csv.writer()‎]]</code>: تعيد الدالة كائن قراءة مهمّته هي المرور على جميع الأسطر في ملف csv المعطى.

المراجعة الحالية بتاريخ 08:05، 3 ديسمبر 2018

تنشئ الدالة البانية لهذا الصنف كائنًا يعمل ككاتب عاديٍّ ولكنّه يربط القواميس بالأسطر الموجودة في ملف csv.

البنية العامة

csv.DictWriter(f, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

‎المعاملات

‎f

ملف csv الذي ستجري الكتابة فيه.

fieldnames

تسلسل من المفاتيح التي تحدّد ترتيب القيم في القاموس الذي سيمرّر إلى التابع writerow()‎ لكتابة الأسطر في الملف المعطى.

يجب الانتباه إلى أنّه وعلى عكس الصنف DictReader فإنّ المعامل fieldnames في الصنف DictWriter ليس اختياريًا.

restval

معامل اختياري، يحدّد القيمة التي ستُستخدم في حال وجود نقص في أسماء الحقول في القاموس الممرّر.

extrasaction

إن تضمن القاموس الممرّر إلى التابع writerow()‎ مفتاحًا غير موجود في المعامل fieldnames، فإنّ المعامل extrasaction يحدّد الإجراء الذي يجب اتخاذه في هذه الحالة. فإن أخذ هذا المعامل القيمة 'raise' (وهي القيمة الافتراضية) يطلق التابع الاستثناء ValueError، وإن أخذ المعامل القيمة 'ignore' سيتجاهل التابع القيم الإضافية في القاموس.

تمرّر بقية المعاملات الاختيارية أو المفتاحية إلى نسخة كائن الكتابة الضمني.

أمثلة

يبين المثال التالي طريقة الاستفادة من كائنات الكتابة:

import csv

with open('names.csv', 'w', newline='') as csvfile:
    fieldnames = ['first_name', 'last_name']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

توابع كائنات DictWriter

تمتلك كائنات DictWriter التوابع العامة التالية:

التابع DictWriter.writeheader()

يكتب التابع صفًّا مع أسماء الحقول (كما هو محدّد في الدالة البانية).

ملاحظة: هذا التابع جديد في الإصدار 3.2.

انظر أيضًا

  • الدالة csv.writer()‎: تعيد الدالة كائن قراءة مهمّته هي المرور على جميع الأسطر في ملف csv المعطى.
  • الصنف DictReader.

مصادر

صفحة CSV File Reading and Writing في توثيق بايثون الرسمي.