الدالة csv.reader()‎‎ في بايثون

من موسوعة حسوب
< Python‏ | csv
مراجعة 20:04، 25 نوفمبر 2018 بواسطة Mohammed Taher (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>csv.reader()‎‎</code> في بايثون}}</noinclude> تعيد الدالة كائن قراءة مهمّته هي الم...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

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


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

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

المعاملات

csvfile ملف csv المراد قراءة محتوياته، ويمكن أن تكون قيمة هذا المعامل أيّ كائن يدعم بروتوكول المكرِّر iterator protocol ويعيد سلسلة نصية في كلّ مرة يجري فيها استدعاء التابع ‎__next__()‎، وعادة ما تكون كائنات الملفات وكائنات القوائم ملائمة لهذا الغرض.

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

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

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

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

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

يعاد كلّ سطر تقرأه الدالة من ملف csv كقائمة من السلاسل النصية، ولا تُجرى أي تحويلات تلقائية للبيانات إلا إذا استخدم خيار التنسيق QUOTE_NONNUMERIC (في هذه الحالة تحوّل القيم غير المحاطة بعلامات اقتباس إلى أعداد ذات فاصلة عشرية).

أمثلة

يبين المثال التالي طريقة استخدام الدالة:

>>> import csv
>>> with open('eggs.csv', newline='') as csvfile:
...     spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
...     for row in spamreader:
...         print(', '.join(row))
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam

انظر أيضًا

  • الدالة csv.writer()‎: تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى سلاسل نصية مفصولة عن بعضها البعض وكتابتها في الكائن المعطى.

مصادر

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