فهم ملفات CSV ووحدة `csv` في بايثون: أساسيات التعامل مع البيانات الجدولية


مقدمة افتتاحية: هل سبق لك أن احتجت لتبادل البيانات بين تطبيقات مختلفة أو تخزين معلومات منظمة بطريقة بسيطة وسهلة القراءة؟ هنا يأتي دور ملفات CSV! في هذا الدرس النظري، سنغوص في عالم ملفات CSV، نفهم بنيتها، ونتعلم كيف توفر لنا بايثون أداة قوية، وهي وحدة csv، للتعامل مع هذه الملفات بكفاءة وسهولة.

ما هي ملفات CSV؟

ملفات CSV (Comma Separated Values) هي صيغة ملفات نصية بسيطة تستخدم لتخزين البيانات الجدولية. يتم فصل كل قيمة بفاصل (غالباً فاصلة)، ويُمثل كل سطر في الملف صفاً جديداً من البيانات. هذه البساطة تجعلها مثالية لتبادل البيانات بين قواعد البيانات، جداول البيانات (مثل Excel)، وتطبيقات البرمجة المختلفة.

لماذا نستخدم ملفات CSV؟

تُستخدم ملفات CSV على نطاق واسع لعدة أسباب:

  • البساطة: سهلة القراءة والكتابة يدوياً وبرمجياً.
  • التوافقية: مدعومة من قبل معظم برامج جداول البيانات وقواعد البيانات.
  • خفيفة الوزن: حجمها صغير مقارنة بصيغ أخرى مثل XML أو JSON للبيانات الجدولية البسيطة.

وحدة `csv` في بايثون

توفر بايثون وحدة csv مدمجة وقوية للتعامل مع ملفات CSV. هذه الوحدة تجعل عملية قراءة وكتابة البيانات أسهل بكثير، حيث تتولى التعامل مع التفاصيل المعقدة مثل الاقتباس (Quoting) والهروب (Escaping) من المحارف الخاصة.

المكونات الرئيسية لوحدة `csv`:

  • `csv.writer`: يُستخدم لإنشاء كائن يسمح لك بكتابة البيانات إلى ملف CSV.
    • `writer.writerow(row)`: يكتب صفاً واحداً من البيانات (قائمة أو tuple) إلى الملف.
  • `csv.reader`: يُستخدم لإنشاء كائن يسمح لك بقراءة البيانات من ملف CSV.
    • التكرار على كائن `reader` يعيد كل صف كقائمة من السلاسل النصية.
  • الدالة `open()`: أساسية للتعامل مع الملفات في بايثون.
    • `mode='w'`: لفتح الملف للكتابة (إذا كان الملف موجوداً، سيتم مسح محتواه).
    • `mode='r'`: لفتح الملف للقراءة.
    • `encoding='utf-8'`: لتحديد ترميز الأحرف، وهو مهم للتعامل مع اللغات المختلفة مثل العربية.
    • `newline=''`: معلمة مهمة جداً عند التعامل مع ملفات CSV لمنع إضافة أسطر فارغة إضافية بين الصفوف في بعض أنظمة التشغيل.

نظرة عامة على الكود (مفهومياً)

الكود الذي ستطبقه لاحقاً يقوم بعمليتين رئيسيتين:

  1. إنشاء وكتابة: يفتح ملفاً باسم data.csv في وضع الكتابة ('w')، ثم يستخدم csv.writer لكتابة سطر العنوان ثم سطرين من البيانات (أحمد وسارة).
  2. قراءة: يغلق الملف ثم يعيد فتحه في وضع القراءة ('r')، ثم يستخدم csv.reader لقراءة كل سطر من الملف وطباعته على الشاشة.

خاتمة

بهذا نكون قد استعرضنا الأساس النظري لملفات CSV وكيف توفر لنا بايثون وحدة csv قوية للتعامل معها. في الدرس العملي القادم، سنطبق هذه المفاهيم خطوة بخطوة لنرى كيف يمكننا إنشاء وقراءة ملفات CSV بأنفسنا.



🔗 الخطوة التالية: انتقل إلى التطبيق العملي وجرب الكود بنفسك من هنا.