सब बातें आप .csv फाइलों के साथ कर सकते हैं, मैं उपयोग करने का सुझाव के साथ
clojure-csv या clojure.data.csv। मैं ज्यादातर .csv फ़ाइल में पढ़ने के लिए क्लोजर-सीएसवी का उपयोग करता हूं।
यहां उपयोगिता लाइब्रेरी से कुछ कोड स्निपेट हैं जो मैं अपने अधिकांश क्लोजर प्रोग्रामों के साथ उपयोग करता हूं।
from util.core
(ns util.core
^{:author "Charles M. Norton",
:doc "util is a Clojure utilities directory"}
(:require [clojure.string :as cstr])
(:import java.util.Date)
(:import java.io.File)
(:use clojure-csv.core))
(defn open-file
"Attempts to open a file and complains if the file is not present."
[file-name]
(let [file-data (try
(slurp file-name)
(catch Exception e (println (.getMessage e))))]
file-data))
(defn ret-csv-data
"Returns a lazy sequence generated by parse-csv.
Uses open-file which will return a nil, if
there is an exception in opening fnam.
parse-csv called on non-nil file, and that
data is returned."
[fnam]
(let [csv-file (open-file fnam)
inter-csv-data (if-not (nil? csv-file)
(parse-csv csv-file)
nil)
csv-data
(vec (filter #(and pos? (count %)
(not (nil? (rest %)))) inter-csv-data))]
(if-not (empty? csv-data)
(pop csv-data)
nil)))
(defn fetch-csv-data
"This function accepts a csv file name, and returns parsed csv data,
or returns nil if file is not present."
[csv-file]
(let [csv-data (ret-csv-data csv-file)]
csv-data))
एक बार जब आप एक .csv फ़ाइल में पढ़ लेंगे, तो आप इसकी सामग्री के साथ क्या करते हैं एक और मामला है। आम तौर पर, मैं एक वित्तीय प्रणाली से .csv "रिपोर्ट" ले रहा हूं, जैसे कि संपत्ति मूल्यांकन, और बिलिंग को अन्य वित्तीय प्रणाली के डेटाबेस में अपलोड करने के लिए डेटा स्वरूपित करना।
मैं अक्सर zipmap
प्रत्येक .csv पंक्ति को तो मैं कॉलम नाम (कॉलम नामों में पढ़कर) द्वारा डेटा निकाल सकता हूं, या यहां तक कि zipmap
'ped .csv पंक्तियों का अनुक्रम भी बना सकता हूं।
अच्छा। अब सब बचा है 'put-csv', क्या आप मदद करेंगे? –
मैंने इसे जोड़ा है। – mobyte
डोल पर ध्यान दें: डोल किसी भी प्रभाव को लागू करने के लिए उपयोग किया जा सकता है। सीईसी के लगातार नेक्सट्स के माध्यम से चलता है, सिर को बरकरार रखता है और इसे वापस लौटाता है, इस प्रकार पूरे सीईसी को एक समय में स्मृति में रहने के लिए कारण बनता है। – micrub