0Pricing
Python Academy · درس

قراءة CSV باستخدام csv.reader

اقرأ ملفات CSV صفاً صفاً وادخل إلى الأعمدة باستخدام الفهرس

قراءة CSV باستخدام csv.reader درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

مقدمة

تتولى وحدة csv المضمّنة في Python التعامل مع تعقيدات ملفات CSV، مثل الحقول المقتبسة والفواصل ونهايات الأسطر المختلفة.

فتح ملف CSV

with open('data.csv', newline='') as f: هي الطريقة الموصى بها — إذ تتيح newline='' لوحدة csv التعامل مع نهايات الأسطر.
import csv, io
sample = 'name,age,city\nAlice,30,NYC\nBob,25,LA'
reader = csv.reader(io.StringIO(sample))
for row in reader:
    print(row)

أساسيات csv.reader

تُرجع csv.reader(f) مكرّرًا للصفوف، حيث يكون كل صف قائمة من السلاسل النصية.
import csv, io
data = 'a,b,c\n1,2,3\n4,5,6'
for row in csv.reader(io.StringIO(data)):
    print(row)

تخطّي صف العناوين

تخطّي next(reader) صف العناوين. أو استخدم csv.DictReader للوصول إلى الأعمدة حسب أسمائها.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
reader = csv.reader(io.StringIO(data))
header = next(reader)  # skip
for row in reader:
    print(row)

محدِّد مخصص

يقرأ csv.reader(f, delimiter=';') الملفات المفصولة بفواصل منقوطة. وهو يعمل مع أي محدِّد مكوّن من حرف واحد.
import csv, io
data = 'a;b;c\n1;2;3'
for row in csv.reader(io.StringIO(data), delimiter=';'):
    print(row)

التعامل مع الحقول المقتبسة

يتعامل csv.reader تلقائيًا مع الحقول المقتبسة: إذ يبقى 'Alice, Jr.' حقلًا واحدًا.
import csv, io
data = 'name,note\n"Smith, John","great guy"'
for row in csv.reader(io.StringIO(data)):
    print(row)

csv.DictReader

يحوّل DictReader كل صف إلى OrderedDict (أو إلى dict عادي في الإصدار 3.8 والإصدارات الأحدث)، مستخدمًا صف العناوين كمفاتيح.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
for row in csv.DictReader(io.StringIO(data)):
    print(row['name'], row['age'])

تحويل الأنواع

تكون قيم CSV دائمًا سلاسل نصية. حوّلها صراحةً: int(row['age']), float(row['price']).
import csv, io
data = 'item,price\napple,1.5\nbanana,0.75'
for row in csv.DictReader(io.StringIO(data)):
    print(row['item'], float(row['price'])*2)

التعامل مع الترميز

يتعامل open(file, encoding='utf-8-sig') مع علامة BOM الخاصة بترميز UTF-8، وهي شائعة في ملفات CSV التي ينشئها Excel.
# with open('data.csv', encoding='utf-8-sig', newline='') as f:
#     reader = csv.DictReader(f)
print('encoding demo')

ملفات CSV كبيرة

يعمل csv.reader بأسلوب كسول — فهو يقرأ صفًا واحدًا في كل مرة. لا حاجة إلى تحميل الملف بأكمله في الذاكرة.
import csv, io
data = '\n'.join(f'{i},{i*2}' for i in range(1000))
reader = csv.reader(io.StringIO(data))
print(sum(int(row[0]) for row in reader))

اكتشاف اللهجة

يكتشف csv.Sniffer().sniff(sample) المحدِّد ونمط الاقتباس تلقائيًا.
import csv, io
data = 'a|b|c\n1|2|3'
sniff = csv.Sniffer().sniff(data[:100])
print('delimiter:', sniff.delimiter)
for row in csv.reader(io.StringIO(data), dialect=sniff):
    print(row)

تحقق سريع

ما المعامل الذي ينبغي ضبطه دائمًا عند فتح ملف CSV باستخدام open()؟

مراجعة

csv.reader: الصفوف على شكل قوائم من السلاسل النصية. DictReader: الصفوف على شكل قواميس. افتح الملفات دائمًا باستخدام newline=''. عالج الترميز في ملفات Excel. حوّل الأنواع صراحةً.

تابع التقدّم

أحسنتم! انتقلوا إلى الدرس التالي.

الأسئلة الشائعة

هل درس «قراءة CSV باستخدام csv.reader» مجاني؟

نعم — نص درس «قراءة CSV باستخدام csv.reader» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «قراءة CSV باستخدام csv.reader»؟

اقرأ ملفات CSV صفاً صفاً وادخل إلى الأعمدة باستخدام الفهرس تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «قراءة CSV باستخدام csv.reader»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ترميز JSON وفك ترميزه
  2. التعامل مع هياكل JSON المتداخلة
  3. قراءة CSV باستخدام csv.reader
  4. كتابة CSV باستخدام csv.DictWriter
← العودة إلى Python Academy