كيفية قراءة ملف 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.
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 في 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 باستخدام 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" وقراءة البيانات وكتابتها بتنسيق CSV. تُستخدم ملفات CSV على نطاق واسع في تطبيقات البرامج لأنها سهلة القراءة والإدارة، وحجمها الصغير يجعلها سريعة نسبيًا في المعالجة والنقل.
توفر وحدة CSV العديد من الوظائف والفئات التي تتيح لك القراءة والكتابة بسهولة. يمكنك إلقاء نظرة على المسؤول Python يعد CSV أفضل طريقة لحفظ البيانات وعرضها وإرسالها. في الواقع، ليس من الصعب تعلمه كما يبدو في البداية. ولكن مع القليل من الممارسة، ستتقنه.
يعد Pandas بديلاً رائعًا لقراءة ملفات CSV.
هناك أيضًا طرق أخرى لتحليل الملفات النصية باستخدام مكتبات مثل ANTLR وPLY وPlyPlus. يمكنهم جميعًا التعامل مع التحليل الثقيل، وإذا لم ينجح التلاعب البسيط بالسلسلة، فهناك تعبيرات عادية يمكنك استخدامها.



