كيفية قراءة ملف CSV في Python (الوحدة، أمثلة الباندا)

ما هو ملف CSV؟

A ملف CSV هو نوع بسيط من الملفات النصية العادية التي تستخدم بنية محددة لترتيب البيانات الجدولية. يتم تحديد التنسيق القياسي لملف CSV من خلال بيانات الصفوف والأعمدة حيث ينهي سطر جديد كل صف لبدء الصف التالي، ويتم فصل كل عمود بفاصلة داخل الصف.

يعد CSV تنسيقًا شائعًا لتبادل البيانات لأنه مضغوط وبسيط وعامة. تسمح العديد من الخدمات عبر الإنترنت لمستخدميها بتصدير البيانات الجدولية من موقع الويب إلى ملف CSV. سيتم فتح ملفات CSV في برنامج Excel، وتحتوي جميع قواعد البيانات تقريبًا على أداة للسماح بالاستيراد من ملفات CSV.

ملف عينة CSV

تسمى البيانات الموجودة في شكل جداول أيضًا بـ CSV (قيم مفصولة بفواصل) - حرفيًا "قيم مفصولة بفواصل". هذا تنسيق نصي مخصص لعرض البيانات الجدولية. كل سطر من الملف هو سطر واحد من الجدول. يتم فصل قيم الأعمدة الفردية برمز فاصل - فاصلة (،) أو فاصلة منقوطة (؛) أو رمز آخر. يمكن قراءة ملف CSV ومعالجته بسهولة Python.

ضع في اعتبارك الجدول التالي

بيانات الجدول

لغة برمجة صمم بواسطة ظهر تمديد
Python غيدو فان روسوم 1991 .py
Java جيمس جوسلينج 1995 جافا
C++ بيارني ستيرستروب 1983 .CPP

يمكنك تمثيل هذا الجدول في ملف CSV على النحو التالي.

بيانات CSV

لغة البرمجة، تصميم، ظهور، امتداد

Python، جويدو فان روسوم، 1991، .py

Java، جيمس جوسلينج، 1995، .java

C++, بيارن ستروستروب,1983,.cpp

كما ترون، كل صف هو سطر جديد، ويتم فصل كل عمود بفاصلة. هذا مثال على كيفية ظهور ملف CSV.

تنزيل بيانات CSV

Python وحدة CSV

Python يوفر وحدة CSV للتعامل مع ملفات CSV. لقراءة/كتابة البيانات، تحتاج إلى التكرار خلال صفوف ملف CSV. تحتاج إلى استخدام طريقة التقسيم للحصول على البيانات من أعمدة محددة.

وظائف وحدة CSV

يمكنك العثور على الوظائف التالية في وثائق وحدة CSV:

  • csv.field_size_limit – إرجاع الحد الأقصى لحجم الحقل
  • csv.get_dialect – احصل على اللهجة المرتبطة بالاسم
  • csv.list_dialects - إظهار جميع اللهجات المسجلة
  • csv.reader – قراءة البيانات من ملف CSV
  • csv.register_dialect – ربط اللهجة بالاسم
  • csv.writer – كتابة البيانات إلى ملف CSV
  • csv.unregister_dialect - حذف اللهجة المرتبطة باسم سجل اللهجة
  • csv.QUOTE_ALL - اقتبس كل شيء، بغض النظر عن نوعه.
  • csv.QUOTE_MINIMAL - حقول الاقتباس بأحرف خاصة
  • csv.QUOTE_NONNUMERIC - اقتبس جميع الحقول التي لا تحتوي على قيم رقمية
  • csv.QUOTE_NONE - لا تقتبس أي شيء في الإخراج

في هذا البرنامج التعليمي، سنركز فقط على وظائف القارئ والكاتب التي تسمح لك بتحرير البيانات وتعديلها ومعالجتها في ملف CSV.

كيفية قراءة ملف CSV في Python

فيما يلي خطوات قراءة ملف CSV فيه Python.

الخطوة 1) لقراءة البيانات من ملفات CSV، يجب عليك استخدام وظيفة القارئ لإنشاء كائن قارئ.

تم تطوير وظيفة القارئ لأخذ كل صف من الملف وإنشاء قائمة بجميع الأعمدة. ثم عليك اختيار العمود الذي تريد بيانات المتغير له.

يبدو الأمر أكثر تعقيدًا مما هو عليه الآن. دعونا نلقي نظرة على هذا Python كود لقراءة ملف CSV، وسنكتشف أن العمل مع ملف CSV ليس بالأمر الصعب.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

الخطوة 2) عند تنفيذ البرنامج أعلاه ستكون النتيجة:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

كيفية قراءة ملف CSV في قاموس في Python

يمكنك أيضًا استخدام DictReader لقراءة ملفات CSV. يتم تفسير النتائج كقاموس حيث يكون صف الرأس هو المفتاح، والصفوف الأخرى هي القيم.

ضع في اعتبارك الكود التالي

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

نتيجة هذا الرمز هي:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

قراءة ملف CSV في القاموس

وهذه الطريقة لقراءة البيانات من ملف CSV أسهل بكثير من الطريقة السابقة. ومع ذلك، فهذه ليست الطريقة الأفضل لقراءة البيانات.

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

إليك كيفية كتابة ملف CSV فيه Python:

عندما يكون لديك مجموعة من البيانات التي ترغب في تخزينها في ملف CSV، عليك استخدام وظيفة الكاتب (). لتكرار البيانات عبر الصفوف (السطور)، عليك استخدام الدالة writerow().

فكر في المثال التالي. نكتب البيانات في ملف "writeData.csv" حيث يكون الفاصل عبارة عن علامة اقتباس.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

النتيجة في ملف CSV هي:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

اكتب ملف CSV فيه Python

قراءة ملف CSV باستخدام Pandas

Pandas هي مكتبة مفتوحة المصدر تسمح لك باستيراد ملف CSV فيها Python وتنفيذ معالجة البيانات. توفر الباندا طريقة سهلة لإنشاء البيانات ومعالجتها وحذفها.

يجب عليك تثبيت مكتبة الباندا باستخدام الأمر pip install pandas . في Windows، سوف تقوم بتنفيذ هذا الأمر في موجه الأوامر أثناء وجودك في Linux في المحطة الطرفية.

تعد قراءة ملف CSV في Pandas DataFrame أمرًا سريعًا وسهلاً للغاية:

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

نتيجة قراءة CSV الباندا مثال:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

مكتبة مفيدة جدا. في ثلاثة أسطر فقط من التعليمات البرمجية ستحصل على نفس النتيجة السابقة. يعرف الباندا أن السطر الأول من ملف CSV يحتوي على أسماء الأعمدة، وسيستخدمها تلقائيًا.

اكتب ملف CSV باستخدام Pandas

إن الكتابة إلى ملف CSV باستخدام Pandas أمر سهل مثل القراءة. هنا يمكنك الإقناع بذلك. أولاً، يجب عليك إنشاء إطار بيانات بناءً على ما يلي Python الكتابة إلى رمز CSV.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

هنا هو الإخراج

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

ويتم إنشاء ملف CSV في الموقع المحدد.

اكتب ملف CSV باستخدام Pandas

الخاتمة

حسنًا، الآن أنت تعرف كيفية استخدام طريقة "csv" وقراءة البيانات وكتابتها بتنسيق CSV. تُستخدم ملفات CSV على نطاق واسع في تطبيقات البرامج لأنها سهلة القراءة والإدارة، وحجمها الصغير يجعلها سريعة نسبيًا في المعالجة والنقل.

توفر وحدة CSV العديد من الوظائف والفئات التي تتيح لك القراءة والكتابة بسهولة. يمكنك إلقاء نظرة على المسؤول Python يعد CSV أفضل طريقة لحفظ البيانات وعرضها وإرسالها. في الواقع، ليس من الصعب تعلمه كما يبدو في البداية. ولكن مع القليل من الممارسة، ستتقنه.

يعد Pandas بديلاً رائعًا لقراءة ملفات CSV.

هناك أيضًا طرق أخرى لتحليل الملفات النصية باستخدام مكتبات مثل ANTLR وPLY وPlyPlus. يمكنهم جميعًا التعامل مع التحليل الثقيل، وإذا لم ينجح التلاعب البسيط بالسلسلة، فهناك تعبيرات عادية يمكنك استخدامها.

تلخيص هذه التدوينة بـ: