Clojure:
การทำงานกับ CSV

วิธีการ:

การอ่านไฟล์ CSV

Clojure ไม่มีการแยกวิเคราะห์ CSV ในไลบรารีมาตรฐาน แต่คุณสามารถใช้ไลบรารี clojure.data.csv สำหรับวัตถุประสงค์นี้ ก่อนอื่น เพิ่มไลบรารีนี้ลงในการพึ่งพาโปรเจกต์ของคุณ

ในไฟล์ project.clj ของคุณ เพิ่มการพึ่งพาต่อไปนี้:

[clojure.data.csv "1.0.0"]

เพื่ออ่านไฟล์ CSV และพิมพ์แต่ละแถว:

(require '[clojure.data.csv :as csv]
         '[clojure.java.io :as io])

(with-open [reader (io/reader "path/to/yourfile.csv")]
  (doall
   (map println (csv/read-csv reader))))

สิ่งนี้จะแสดงผลแต่ละแถวของ CSV เป็นเวกเตอร์ของ Clojure

เขียนลงไฟล์ CSV

เพื่อเขียนข้อมูลลงไฟล์ CSV คุณสามารถใช้ไลบรารี clojure.data.csv เดียวกัน:

(require '[clojure.data.csv :as csv]
         '[clojure.java.io :as io])

(let [data [["id" "name" "age"]
            ["1" "John Doe" "28"]
            ["2" "Jane Doe" "31"]]]
  (with-open [writer (io/writer "path/to/outputfile.csv")]
    (csv/write-csv writer data)))

สิ่งนี้จะสร้างหรือเขียนทับ outputfile.csv โดยมีข้อมูลที่ระบุไว้

การใช้ไลบรารีของบุคคลที่สาม: clojure.data.csv

ถึงแม้ว่า clojure.data.csv จะถือเป็นไลบรารีที่ตรงไปตรงมาที่สุดสำหรับการจัดการ CSV ใน Clojure สำหรับงานที่ซับซ้อนยิ่งขึ้น เช่น การจัดการ CSV ที่มีอักขระพิเศษหรือตัวคั่นที่ไม่เป็นมาตรฐาน คุณอาจสำรวจตัวเลือกเพิ่มเติมภายในระบบนิเวศหรือแม้แต่พิจารณาการทำงานร่วมกับ Java ด้วยไลบรารีเช่น Apache Commons CSV อย่างไรก็ตาม สำหรับงานประมวลผล CSV มาตรฐานส่วนใหญ่ใน Clojure clojure.data.csv มอบเครื่องมือที่ง่ายและมีประสิทธิภาพ