الفرق بين المراجعتين ل"Python/csv/reader"
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>csv.reader()</code> في بايثون}}</noinclude> تعيد الدالة كائن قراءة مهمّته هي الم...') |
|||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة <code>csv.reader()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:الدالة <code>csv.reader()</code> في بايثون}}</noinclude> | ||
تعيد الدالة كائن قراءة مهمّته هي المرور على جميع الأسطر في ملف csv المعطى. | تعيد الدالة كائن قراءة مهمّته هي المرور على جميع الأسطر في ملف csv المعطى. | ||
− | |||
− | |||
== البنية العامة == | == البنية العامة == | ||
سطر 8: | سطر 6: | ||
csv.reader(csvfile, dialect='excel', **fmtparams) | csv.reader(csvfile, dialect='excel', **fmtparams) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | csvfile | + | == المعاملات == |
+ | |||
+ | === <code>csvfile</code> === | ||
ملف csv المراد قراءة محتوياته، ويمكن أن تكون قيمة هذا المعامل أيّ كائن يدعم بروتوكول المكرِّر iterator protocol ويعيد سلسلة نصية في كلّ مرة يجري فيها استدعاء التابع __next__()، وعادة ما تكون كائنات الملفات وكائنات القوائم ملائمة لهذا الغرض. | ملف csv المراد قراءة محتوياته، ويمكن أن تكون قيمة هذا المعامل أيّ كائن يدعم بروتوكول المكرِّر iterator protocol ويعيد سلسلة نصية في كلّ مرة يجري فيها استدعاء التابع __next__()، وعادة ما تكون كائنات الملفات وكائنات القوائم ملائمة لهذا الغرض. | ||
− | إن كانت قيمة هذا المعامل كائن ملف، فيجب أن يكون مفتوحًا مع المعامل newline=''. | + | إن كانت قيمة هذا المعامل كائن ملف، فيجب أن يكون مفتوحًا مع المعامل <code><nowiki>''</nowiki>newline=''''</code>''. '' |
− | '''ملاحظة''': إن لم تحدد القيمة newline='' لن تُفسّر الأسطر الجديدة في الحقول المحاطة بعلامات اقتباس بطريقة صحيحة، وسيضاف رمز \r إضافي إلى الأسطر المنتهية بالرمز \r\n في المنصّات التي تستخدم الرمز الأخير في نهايات الأسطر. يُنصح بتحديد القيمة newline='' دائمًا إذ | + | '''ملاحظة''': إن لم تحدد القيمة <code><nowiki>''</nowiki>newline=''''</code> لن تُفسّر الأسطر الجديدة في الحقول المحاطة بعلامات اقتباس بطريقة صحيحة، وسيضاف رمز <code>\r</code> إضافي إلى الأسطر المنتهية بالرمز <code>\r\n</code> في المنصّات التي تستخدم الرمز الأخير في نهايات الأسطر. يُنصح بتحديد القيمة <code><nowiki>''</nowiki>newline=''''</code> دائمًا إذ تمتلك وحدة <code>csv</code> طريقتها الخاصة في التعامل مع نهايات الأسطر بمختلف أنواعها. |
− | dialect | + | === <code>dialect</code> === |
− | معامل اختياري، يمكن استخدامه لتعريف مجموعة من المعاملات الخاصة بلهجة CSV (CSV dialect) معيّنة. يمكن أن تكون قيمة هذا المعامل نسخة من صنف متفرّع عن الصنف Dialect أو واحدة من السلاسل النصية التي تعيدها الدالة list_dialects(). | + | معامل اختياري، يمكن استخدامه لتعريف مجموعة من المعاملات الخاصة بلهجة CSV (CSV dialect) معيّنة. يمكن أن تكون قيمة هذا المعامل نسخة من صنف متفرّع عن الصنف <code>[[Python/Dialect|Dialect]]</code> أو واحدة من السلاسل النصية التي تعيدها الدالة <code>[[Python/csv/list dialects|list_dialects()]]</code>. |
− | fmtparams | + | === <code>fmtparams</code> === |
− | معامل مفتاحي اختياري، يمكن تحديد قيمته لإعادة تعريف معاملات التنسيق في اللهجة المستخدمة. راجع قسم اللهجات ومعاملات التنسيق للاطلاع على المزيد من المعلومات. | + | معامل مفتاحي اختياري، يمكن تحديد قيمته لإعادة تعريف معاملات التنسيق في اللهجة المستخدمة. راجع قسم [[Python/csv#.D8.A7.D9.84.D9.84.D9.87.D8.AC.D8.A7.D8.AA .D9.88.D9.85.D8.B9.D8.A7.D9.85.D9.84.D8.A7.D8.AA .D8.A7.D9.84.D8.AA.D9.86.D8.B3.D9.8A.D9.82|اللهجات ومعاملات التنسيق]] للاطلاع على المزيد من المعلومات. |
== القيمة المعادة == | == القيمة المعادة == | ||
− | يعاد كلّ سطر تقرأه الدالة من ملف csv كقائمة من السلاسل النصية، ولا تُجرى أي تحويلات تلقائية للبيانات إلا إذا استخدم خيار التنسيق QUOTE_NONNUMERIC (في هذه الحالة تحوّل القيم غير المحاطة بعلامات اقتباس إلى أعداد ذات فاصلة عشرية). | + | يعاد كلّ سطر تقرأه الدالة من ملف csv كقائمة من السلاسل النصية، ولا تُجرى أي تحويلات تلقائية للبيانات إلا إذا استخدم خيار التنسيق <code>QUOTE_NONNUMERIC</code> (في هذه الحالة تحوّل القيم غير المحاطة بعلامات اقتباس إلى أعداد ذات فاصلة عشرية). |
== أمثلة == | == أمثلة == | ||
سطر 43: | سطر 41: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
− | * الدالة <code>csv.writer()</code>: تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى سلاسل نصية مفصولة عن بعضها البعض وكتابتها في الكائن المعطى. | + | * الدالة <code>[[Python/csv/writer|csv.writer()]]</code>: تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى سلاسل نصية مفصولة عن بعضها البعض وكتابتها في الكائن المعطى. |
== مصادر == | == مصادر == | ||
[https://docs.python.org/3/library/csv.html#csv.reader صفحة CSV File Reading and Writing في توثيق بايثون الرسمي.] | [https://docs.python.org/3/library/csv.html#csv.reader صفحة CSV File Reading and Writing في توثيق بايثون الرسمي.] |
المراجعة الحالية بتاريخ 20:09، 25 نوفمبر 2018
تعيد الدالة كائن قراءة مهمّته هي المرور على جميع الأسطر في ملف 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()
: تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى سلاسل نصية مفصولة عن بعضها البعض وكتابتها في الكائن المعطى.