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 מספק ערכה פשוטה ויעילה של כלים.