0Pricing
Ruby Academy · درس

التعامل مع CSV

مكتبة csv

التعامل مع CSV درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ما هو CSV؟

يخزّن CSV (Comma-Separated Values) البيانات الجدولية كنص عادي، بحيث يمثّل كل سطر صفًا وتفصل الفواصل بين الحقول. وتقرأ مكتبة csv القياسية في Ruby هذه البيانات وتكتبها.

require 'csv'
row = CSV.parse_line('Alice,30,Engineer')
p row

تحليل سلسلة CSV

يحوّل CSV.parse سلسلة CSV متعددة الأسطر إلى مصفوفة من مصفوفات الصفوف.

require 'csv'
data = "name,age\nAlice,30\nBob,25"
rows = CSV.parse(data)
p rows

استخدام العناوين

مرّر headers: true لكي يصبح الصف الأول أسماء الحقول، ولكي يتصرف كل صف مثل Hash.

require 'csv'
data = "name,age\nAlice,30"
CSV.parse(data, headers: true).each do |row|
  puts(row['name'])
  puts(row['age'])
end

التكرار على الصفوف

يمكنك التكرار على الصفوف المحلّلة كما تفعل مع أي مصفوفة، والوصول إلى الحقول باستخدام الفهرس.

require 'csv'
rows = CSV.parse("1,a\n2,b\n3,c")
rows.each { |r| puts "#{r[0]} -> #{r[1]}" }

تحويل الأنواع

استخدم converters: :numeric لتحويل الحقول الرقمية تلقائيًا إلى Integers أو Floats.

require 'csv'
rows = CSV.parse("10,20\n30,40", converters: :numeric)
puts(rows[0][0] + rows[1][1])

إنشاء CSV

ينشئ CSV.generate سلسلة CSV. أضف المصفوفات إلى الكتلة لإضافة الصفوف.

require 'csv'
out = CSV.generate do |csv|
  csv << ['name', 'age']
  csv << ['Alice', 30]
end
puts out

الاقتباس والمحارف الخاصة

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

require 'csv'
out = CSV.generate do |csv|
  csv << ['note', 'Hello, world']
end
puts out

فواصل مخصّصة

بالنسبة إلى الملفات المفصولة بعلامات تبويب أو بفواصل منقوطة، حدّد col_sep. ويتعامل ذلك مع TSV ونسخ CSV الأوروبية.

require 'csv'
rows = CSV.parse("a;b;c", col_sep: ';')
p rows

الكتابة إلى ملف

يكتب CSV.open مع الوضع 'w' الصفوف مباشرةً إلى ملف.

require 'csv'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'people.csv')
CSV.open(path, 'w') do |csv|
  csv << ['name', 'age']
  csv << ['Carol', 28]
end
puts(File.read(path))

القراءة من ملف

يحمّل CSV.read ملفًا كاملًا إلى مصفوفة من الصفوف، مع قبول الخيارات نفسها التي يقبلها parse.

require 'csv'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'nums.csv')
File.write(path, "x,y\n1,2\n3,4")
rows = CSV.read(path, headers: true)
puts(rows.first['y'])

جمع قيم عمود

مهمة شائعة: قراءة عمود وتجميع قيمه. اجمع بين العناوين والتحويل الرقمي وmap.

require 'csv'
data = "item,price\npen,3\nbook,12"
total = CSV.parse(data, headers: true, converters: :numeric).sum { |r| r['price'] }
puts(total)

اختبار سريع

أي خيار يتيح لك الوصول إلى حقول CSV باستخدام اسم العمود مثل row['age']؟

مراجعة: العمل مع CSV

يمكنك التعامل مع البيانات الجدولية:

  • استخدم CSV.parse / CSV.read للقراءة
  • استخدم headers: true للحصول على حقول مسمّاة
  • استخدم converters: :numeric للحصول على قيم ذات أنواع محددة
  • استخدم CSV.generate / CSV.open للكتابة
  • استخدم col_sep مع TSV وغيرها من الفواصل
require 'csv'
p CSV.parse_line('a,b,c')

الأسئلة الشائعة

هل درس «التعامل مع CSV» مجاني؟

نعم — نص درس «التعامل مع CSV» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ماذا ستتعلم في «التعامل مع CSV»؟

مكتبة csv تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟

لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «التعامل مع CSV»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟

نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. قراءة JSON وكتابته
  2. التعامل مع CSV
  3. تهيئة YAML
  4. اختيار التنسيق
← العودة إلى Ruby Academy