Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

تحليل ملفات CSV


What is CSV?

CSV تعني 'قيم مفصولة بفاصلة'. يعتبر تنسيق CSV هو الأكثر شيوعًا للاستيراد والتصدير في قواعد البيانات وجداول البيانات. ملف CSV هو ملف نصي بسيط يحتوي على قائمة بيانات. يستخدم غالبًا الحرف الفاصلة (,) للفصل بين البيانات، ولكن في بعض الأحيان يستخدم أحرف أخرى مثل الفواصل المنقوطة أو علامات التبويب.

مثال على بيانات CSV:

... column 1 name,column 2 name, column 3 name
first row data 1,first row data 2,first row data 3
second row data 1,second row data 2,second row data 3
...

CSV module in Python

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

CSV module important functions

How do you use csv module?

أولاً قم باستيراد وحدة csv في برنامج بايثون الخاص بك.

تتيح لك وظائف الكتابة والقراءة تعديل وتحرير وتحويل البيانات في ملف CSV.

كيفية قراءة ملف CSV:-

لقراءة البيانات من ملفات CSV نستخدم وظيفة reader لإنشاء كائن قارئ.

على سبيل المثال:

هنا، نقوم أولاً بفتح ملف CSV في وضع القراءة ونسمي كائن الملف csvfile. نستخدم مدير السياق لفتح الملف بحيث لا نحتاج إلى القلق بشأن إغلاق الملف. تقوم دالة csv.reader بأخذ كائن الملف كمدخل وتعيد كائنًا قابلاً للتكرار. نقوم بحفظ الكائن القابل للتكرار كـ csvreader.

كما نعلم، csvreader هو كائن قابل للتكرار، وبالتالي يمكننا التكرار باستخدام حلقة for:

المثال 1:

الكود أعلاه سيقوم بطباعة جميع الصفوف التي قرأناها من ملف csv. يرجى ملاحظة أننا نفتح الملف بوضع 'r' عندما يكون موجودًا بالفعل.

ما هو القادم؟

csvreader هو كائن قابل للتكرار. وبالتالي، تعيد دالة .next() الصف الحالي وتقدم المؤشر إلى الصف التالي.

المثال 2:

في المثال 1، سترى جميع الصفوف مطبوعة على وحدة التحكم مع العنوان. في المثال 2، تقوم دالة .next() بقراءة العنوان في كائن fields وتقدم المؤشر إلى الصف التالي وبالتالي يتم طباعة جميع الصفوف باستثناء العنوان.

كيفية الكتابة في ملف CSV-

للكتابة في ملف csv، توفر وحدة csv دالة csv.writer. لكتابة البيانات، نقوم أولاً بفتح ملف CSV في وضع الكتابة ('w'). يسمى كائن الملف csvfile. نقوم بحفظ كائن csv.writer كـ csvwriter.

المثال:

في المثال أعلاه، سيقوم دالة writerow() بكتابة صف واحد وهو كائن fields بينما ستقوم دالة writerows() بكتابة القائمة الكاملة للصفوف المحددة أعلاه في ملف csv.

الآن لنذهب خطوة إلى الأمام. قم بقراءة محتوى ملف csv واحد واكتب في ملف csv آخر.

المثال:

هنا، نقوم بفتح 'newfilename.csv' في وضع 'W' كـ f2 وفتح 'mycsvfile.csv' في وضع 'r' كـ f1. نحن نستخدم دوال .next(), .reader(), .writer(), .writerow() من وحدة csv. باستخدام .next()، نقدم مؤشر القارئ وباستخدام csvwriter.writerow() نكتب الصف الوارد واحداً في كل مرة.

DictReader and DictWriter classes in Python

فيما يلي فئتان مهمتان في بايثون لقراءة وكتابة ملفات csv.

فئة csv.Dictwriter
فئة csv.DictReader

تعمل فئات DictReader و DictWriter في بايثون على قراءة وكتابة إلى CSV. على الرغم من أنها مشابهة لدوال القارئ والكاتب، إلا أن هذه الفئات تستخدم كائنات القاموس لقراءة وكتابة ملفات csv.

DictReader:

يقوم بإنشاء كائن يقوم بتعيين المعلومات المقروءة إلى قاموس تكون مفاتيحه معطاة بواسطة المعامل fieldnames. هذا المعامل اختياري، ولكن عند عدم تحديده في الملف، تصبح بيانات الصف الأول هي مفاتيح القامبوس.

مثال على csv(info.csv)

..... firstname, lastname
foo, bar
foo1, bar1
.....

المثال:

DictWriter:

تعمل فئة csv.DictWriter مثل الكاتب العادي ولكنها تعين قواميس بايثون إلى صفوف CSV. المعامل fieldnames هو تسلسل للمفاتيح التي تحدد الترتيب الذي تكتب فيه القيم في القاموس الذي يتم تمريره إلى دالة writerow() إلى ملف CSV.

المثال:

Exercise

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

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy