الدالة csv.writer()
في بايثون
تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى سلاسل نصية مفصولة عن بعضها البعض وكتابتها في الكائن المعطى وهو كائن شبيه بالملفات، ويمكن كذلك استخدام أيّ كائن يمتلك التابع 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 المعطى.