Ruby:
การทำงานกับ CSV
วิธีทำ:
Ruby มีไลบรารี CSV มาให้เป็นค่าตั้งต้น ซึ่งทำให้การอ่านจากและเขียนไปยังไฟล์ CSV ง่ายขึ้น นี่คือวิธีที่คุณสามารถใช้ประโยชน์จากสิ่งนี้สำหรับงานทั่วไป:
การอ่านไฟล์ CSV
เพื่ออ่านจากไฟล์ CSV, คุณต้องมีไลบรารี CSV ก่อน จากนั้นคุณสามารถวนลูปท่องไปตามแถว หรืออ่านไปยัง array
require 'csv'
# การอ่านแต่ละแถวเป็น array
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 สามารถเป็นเครื่องมือที่มีค่า ก่อนอื่น, ติดตั้ง gem:
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' และแสดงผลแต่ละแถวเป็น hash โดยอิงจากหัวข้อ
สรุป, ไลบรารี CSV ภายในของ Ruby รวมทั้ง gem ของบุคคลที่สามเช่น SmarterCSV
, ให้การสนับสนุนที่แข็งแกร่งสำหรับการจัดการข้อมูล CSV, ทำให้สามารถทำงานด้านการประมวลผลและการจัดการข้อมูลได้อย่างมีประสิทธิภาพ.