العمل مع ملفات CSV
ملفات CSV (القيم المفصولة بفواصل) هي صيغة شائعة لتخزين البيانات الجدولية، مثل جداول البيانات أو قواعد البيانات. كل سطر في ملف CSV يمثل سجلًا، وكل سجل يتكون من حقول مفصولة بفواصل. تُسهل وحدة csv
المدمجة في بايثون التعامل مع ملفات CSV.
قراءة ملف CSV
لقراءة ملف CSV، يمكنك استخدام كائن csv.reader
. إليك كيفية قراءة البيانات من ملف يسمى data.csv
:
import csv
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
في هذا المثال:
open('data.csv', 'r')
: يفتح ملف CSV في وضع القراءة.csv.reader(file)
: ينشئ كائن قارئ يقوم بتكرار السطور في ملف CSV.for row in reader
: يمر عبر كل سطر في كائن القارئ ويطبعه.
الكتابة إلى ملف CSV
للكتابة إلى ملف CSV، يمكنك استخدام كائن csv.writer
. إليك كيفية كتابة البيانات إلى ملف يسمى output.csv
:
import csv
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'Age', 'City'])
writer.writerow(['Alice', 30, 'New York'])
writer.writerow(['Bob', 25, 'Los Angeles'])
في هذا المثال:
open('output.csv', 'w', newline='')
: يفتح الملف في وضع الكتابة.newline=''
يُستخدم لمنع الأسطر الفارغة بين الصفوف.csv.writer(file)
: ينشئ كائن كاتب.writer.writerow()
: يكتب صفًا إلى ملف CSV. يمكنك استدعاء هذه الدالة عدة مرات لكتابة عدة صفوف.
قراءة ملفات CSV مع رؤوس الأعمدة
إذا كان ملف CSV يحتوي على رؤوس أعمدة، يمكنك استخدام csv.DictReader
لقراءة الملف إلى قواميس، مما يسمح لك بالوصول إلى البيانات باستخدام أسماء الأعمدة:
import csv
with open('data_with_headers.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
print(row['Name'], row['Age'], row['City'])
تمارين
التمرين 1
أنشئ ملف CSV يسمى students.csv
يحتوي على البيانات التالية: الاسم، العمر، الدرجة. اكتب برنامجًا لقراءة هذا الملف وطباعة معلومات كل طالب.
import csv
with open('students.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'Age', 'Grade'])
writer.writerow(['Alice', 21, 'A'])
writer.writerow(['Bob', 22, 'B'])
writer.writerow(['Charlie', 23, 'C'])
with open('students.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
التمرين 2
اكتب برنامجًا يقرأ ملف CSV يحتوي على بيانات المبيعات (sales.csv)، يحسب إجمالي مبلغ المبيعات، ويطبعها.
import csv
total_sales = 0
with open('sales.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
total_sales += float(row['Amount'])
print(f"Total Sales: ${total_sales}")
التمرين 3
عدل ملف students.csv
لإضافة عمود جديد يسمى “البريد الإلكتروني” لكل طالب. استخدم csv.DictWriter
لتحديث الملف.
import csv
students = [
{'Name': 'Alice', 'Age': 21, 'Grade': 'A', 'Email': 'alice@example.com'},
{'Name': 'Bob', 'Age': 22, 'Grade': 'B', 'Email': 'bob@example.com'},
{'Name': 'Charlie', 'Age': 23, 'Grade': 'C', 'Email': 'charlie@example.com'}
]
with open('students.csv', 'w', newline='') as file:
fieldnames = ['Name', 'Age', 'Grade', 'Email']
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
for student in students:
writer.writerow(student)
عمل رائع! لقد تعلمت كيفية القراءة من ملفات CSV والكتابة إليها، وهي مهارة حاسمة للعمل مع البيانات في العديد من التطبيقات.
اترك تعليقاً