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, מאפשרת את ביצוע משימות עיבוד ומניפולציה יעילות של נתונים.