Ruby:
עובדים עם CSV
איך ל:
רובי כוללת כברירת מחדל את הספרייה CSV, אשר מפשטת את הקריאה מתוך והכתיבה אל קבצי CSV. הנה איך אתה יכול לנצל את זה למשימות נפוצות:
קריאת קובץ CSV
לקרוא מקובץ CSV, תחילה דרושה הספרייה CSV. לאחר מכן, ניתן לעבור על השורות או לקרוא אותן לתוך מערך.
require 'csv'
# קריאת כל שורה כמערך
CSV.foreach("data.csv") do |row|
puts row.inspect
end
# הפלט לכל שורה עשוי להיראות כך: ["data1", "data2", "data3"]
כתיבה ל-CSV
כתיבה לקובץ CSV גם היא פשוטה. ניתן להוסיף לקובץ קיים או ליצור קובץ חדש לכתיבה.
require 'csv'
CSV.open("output.csv", "wb") do |csv|
csv << ["header1", "header2", "header3"]
csv << ["value1", "value2", "value3"]
end
# זה יוצר או דורס את 'output.csv' עם הכותרות והערכים המצוינים.
ניתוח מחרוזת CSV
לפעמים יש צורך לנתח נתוני CSV ישירות מתוך מחרוזת. הנה איך:
require 'csv'
data = "name,age,city\nJohn Doe,29,New York\nJane Doe,31,Chicago"
csv = CSV.parse(data, headers: true)
csv.each do |row|
puts "#{row['name']} - #{row['age']} - #{row['city']}"
end
# הפלט הצפוי:
# John Doe - 29 - New York
# Jane Doe - 31 - Chicago
שימוש ב-SmarterCSV
למשימות CSV מורכבות יותר, הגולם SmarterCSV
יכול להיות כלי שימושי. תחילה, התקן את הגולם:
gem install smarter_csv
לאחר מכן, אתה יכול להשתמש בו לטפל בקבצים גדולים או לבצע ניתוח ומניפולציה מתוחכמים יותר:
require 'smarter_csv'
options = {}
data = SmarterCSV.process('large_data.csv', options)
data.each do |hash|
puts hash.inspect
end
# זה יקרא 'large_data.csv' ויציג כל שורה כהאש בהתבסס על הכותרות.
לסיכום, הספרייה המובנית CSV של רובי, לצד גולמים צד שלישי כמו SmarterCSV
, מספקת תמיכה עקבית לטיפול בנתוני CSV, מאפשרת את ביצוע משימות עיבוד ומניפולציה יעילות של נתונים.