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

من موسوعة حسوب
< Python‏ | csv
لا ملخص تعديل
لا ملخص تعديل
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:التابع <code>csv.writer()‎‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>csv.writer()‎‎</code> في بايثون}}</noinclude>
تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى سلاسل نصية مفصولة عن بعضها البعض وكتابتها في الكائن المعطى وهو كائن شبيه بالملفات، ويمكن كذلك استخدام أيّ كائن يمتلك التابع write()‎.  
تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى [[Python/str|سلاسل نصية]] مفصولة عن بعضها البعض وكتابتها في الكائن المعطى وهو كائن شبيه بالملفات، ويمكن كذلك استخدام أيّ كائن يمتلك التابع <code>write()‎</code>.  


إن كانت قيمة هذا المعامل كائن ملف، فيجب أن يكون مفتوحًا مع المعامل <code>newline=<nowiki>''</nowiki>''‎''</code>''.''
إن كانت قيمة هذا المعامل كائن ملف، فيجب أن يكون مفتوحًا مع المعامل <code>newline=<nowiki>''</nowiki>''‎''</code>''.''


'''ملاحظة''': إن لم تحدد القيمة <code>newline=<nowiki>''</nowiki>''‎''</code> لن تُفسّر الأسطر الجديدة في الحقول المحاطة بعلامات اقتباس بطريقة صحيحة، وسيضاف رمز ‎\r إضافي إلى الأسطر المنتهية بالرمز <code>‎\r\n</code> في المنصّات التي تستخدم الرمز الأخير في نهايات الأسطر. يُنصح بتحديد القيمة <code>newline=<nowiki>''</nowiki>''‎''</code> دائمًا إذ أن وحدة csv طريقتها الخاصة في التعامل مع نهايات الأسطر بمختلف أنواعها.
'''ملاحظة''': إن لم تحدد القيمة <code>newline=<nowiki>''</nowiki>''‎''</code> لن تُفسّر الأسطر الجديدة في الحقول المحاطة بعلامات اقتباس بطريقة صحيحة، وسيضاف رمز ‎<code>\r</code> إضافي إلى الأسطر المنتهية بالرمز <code>‎\r\n</code> في المنصّات التي تستخدم الرمز الأخير في نهايات الأسطر. يُنصح بتحديد القيمة <code>newline=<nowiki>''</nowiki>''‎''</code> دائمًا إذ أن وحدة csv طريقتها الخاصة في التعامل مع نهايات الأسطر بمختلف أنواعها.


== البنية العامة ==
== البنية العامة ==
سطر 13: سطر 13:


== ‎المعاملات ==
== ‎المعاملات ==
‎<code>dialect</code>
 
=== ‎<code>dialect</code> ===
معامل اختياري، يمكن استخدامه لتعريف مجموعة من المعاملات الخاصة بلهجة CSV ‏(CSV dialect)‏ معيّنة. يمكن أن تكون قيمة هذا المعامل نسخة من صنف متفرّع عن الصنف <code>Dialect</code> أو واحدة من السلاسل النصية التي تعيدها الدالة <code>list_dialects()</code>‎.  
معامل اختياري، يمكن استخدامه لتعريف مجموعة من المعاملات الخاصة بلهجة CSV ‏(CSV dialect)‏ معيّنة. يمكن أن تكون قيمة هذا المعامل نسخة من صنف متفرّع عن الصنف <code>Dialect</code> أو واحدة من السلاسل النصية التي تعيدها الدالة <code>list_dialects()</code>‎.  


سطر 19: سطر 20:
معامل مفتاحي اختياري، يمكن تحديد قيمته لإعادة تعريف معاملات التنسيق في اللهجة المستخدمة. راجع قسم اللهجات ومعاملات التنسيق للاطلاع على المزيد من المعلومات.
معامل مفتاحي اختياري، يمكن تحديد قيمته لإعادة تعريف معاملات التنسيق في اللهجة المستخدمة. راجع قسم اللهجات ومعاملات التنسيق للاطلاع على المزيد من المعلومات.


لتسهيل التعامل مع الوحدات التي تستخدم واجهة DB البرمجية، تكتب الدالة القيمة <code>None</code> كسلسلة فارغة في ملف csv. لا يمكن عكس عملية التحويل هذه، ولكنّها تسهل إضافة قيمة <code>NULL</code> في [[SQL]] إلى ملفات CSV دون إجراء معالجة مسبقة للبيانات المعادة من استدعاء دوال <code>cursor.fetch*‎</code>.
لتسهيل التعامل مع الوحدات التي تستخدم واجهة <code>DB</code> البرمجية، تكتب الدالة القيمة <code>None</code> كسلسلة فارغة في ملف csv. لا يمكن عكس عملية التحويل هذه، ولكنّها تسهل إضافة قيمة <code>NULL</code> في [[SQL]] إلى ملفات CSV دون إجراء معالجة مسبقة للبيانات المعادة من استدعاء دوال <code>cursor.fetch*‎</code>.


تُحوّل جميع أنواع البيانات الأخرى -التي لا تكون سلاسل نصية- إلى سلاسل نصية باستخدام الدالة <code>[[Python/str|str()‎]]</code> قبل كتابتها في ملف csv.
تُحوّل جميع أنواع البيانات الأخرى -التي لا تكون سلاسل نصية- إلى سلاسل نصية باستخدام الدالة <code>[[Python/str|str()‎]]</code> قبل كتابتها في ملف csv.

المراجعة الحالية بتاريخ 20:28، 26 نوفمبر 2018

تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى سلاسل نصية مفصولة عن بعضها البعض وكتابتها في الكائن المعطى وهو كائن شبيه بالملفات، ويمكن كذلك استخدام أيّ كائن يمتلك التابع write()‎.

إن كانت قيمة هذا المعامل كائن ملف، فيجب أن يكون مفتوحًا مع المعامل newline=''.

ملاحظة: إن لم تحدد القيمة newline='' لن تُفسّر الأسطر الجديدة في الحقول المحاطة بعلامات اقتباس بطريقة صحيحة، وسيضاف رمز ‎\r إضافي إلى الأسطر المنتهية بالرمز ‎\r\n في المنصّات التي تستخدم الرمز الأخير في نهايات الأسطر. يُنصح بتحديد القيمة newline='' دائمًا إذ أن وحدة csv طريقتها الخاصة في التعامل مع نهايات الأسطر بمختلف أنواعها.

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

csv.writer(csvfile, dialect='excel', **fmtparams)

‎المعاملات

dialect

معامل اختياري، يمكن استخدامه لتعريف مجموعة من المعاملات الخاصة بلهجة CSV ‏(CSV dialect)‏ معيّنة. يمكن أن تكون قيمة هذا المعامل نسخة من صنف متفرّع عن الصنف Dialect أو واحدة من السلاسل النصية التي تعيدها الدالة list_dialects()‎.

fmtparams

معامل مفتاحي اختياري، يمكن تحديد قيمته لإعادة تعريف معاملات التنسيق في اللهجة المستخدمة. راجع قسم اللهجات ومعاملات التنسيق للاطلاع على المزيد من المعلومات.

لتسهيل التعامل مع الوحدات التي تستخدم واجهة DB البرمجية، تكتب الدالة القيمة None كسلسلة فارغة في ملف csv. لا يمكن عكس عملية التحويل هذه، ولكنّها تسهل إضافة قيمة NULL في SQL إلى ملفات CSV دون إجراء معالجة مسبقة للبيانات المعادة من استدعاء دوال cursor.fetch*‎.

تُحوّل جميع أنواع البيانات الأخرى -التي لا تكون سلاسل نصية- إلى سلاسل نصية باستخدام الدالة str()‎ قبل كتابتها في ملف csv.

القيمة المعادة

تعيد الدالة كائن كتابة.

أمثلة

يبين المثال التالي طريقة عمل التابع:

import csv
with open('eggs.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

انظر أيضًا

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

مصادر

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