Elixir:
CSV के साथ काम करना

कैसे करें:

Elixir, अपनी शक्तिशाली पैटर्न मिलान और पाइपलाइनिंग के समर्थन के साथ, तीसरे पक्ष की लाइब्रेरियों के बिना भी CSV फाइलों को कुशलतापूर्वक संभाल सकती है। हालाँकि, अधिक उन्नत आवश्यकताओं के लिए, nimble_csv लाइब्रेरी एक तेज़ और सरल विकल्प है।

बिना बाह्य लाइब्रेरियों के CSV फाइल पढ़ना

Elixir के बिल्ट-इन फंक्शन्स का उपयोग करके आप एक CSV फाइल पढ़ और पार्स कर सकते हैं:

defmodule CSVReader do
  def read_file(file_path) do
    File.stream!(file_path)
    |> Stream.map(&String.trim_trailing/1)
    |> Stream.map(&String.split(&1, ","))
    |> Enum.to_list()
  end
end

# नमूना प्रयोग
CSVReader.read_file("data.csv")
# आउटपुट: [["हैडर1", "हैडर2"], ["पंक्ति1मान1", "पंक्ति1मान2"], ["पंक्ति2मान1", "पंक्ति2मान2"]]

एक CSV फाइल में लिखना

इसी तरह, एक CSV फाइल में डेटा लिखने के लिए:

defmodule CSVWriter do
  def write_to_file(file_path, data) do
    File.open(file_path, [:write], fn file ->
      Enum.each(data, fn row ->
        IO.write(file, Enum.join(row, ",") <> "\n")
      end)
    end)
  end
end

# नमूना प्रयोग
data = [["हैडर1", "हैडर2"], ["मान1", "मान2"], ["मान3", "मान4"]]
CSVWriter.write_to_file("output.csv", data)
# Creates output.csv with the data formatted as CSV

nimble_csv का उपयोग करना

अधिक जटिल CSV संभालने के लिए, nimble_csv CSV डेटा के साथ काम करने का एक शक्तिशाली और लचीला तरीका प्रदान करता है। पहले, अपने mix.exs में nimble_csv को अपनी निर्भरताओं में जोड़ें और mix deps.get चलाएं:

defp deps do
  [
    {:nimble_csv, "~> 1.2"}
  ]
end

nimble_csv के साथ CSV डेटा पार्सिंग:

defmodule MyCSVParser do
  NimbleCSV.define(MyParser, separator: ",", escape: "\\")

  def parse(file_path) do
    file_path
    |> File.stream!()
    |> MyParser.parse_stream()
    |> Enum.to_list()
  end
end

# नमूना प्रयोग
MyCSVParser.parse("data.csv")
# आउटपुट nimble_csv के साथ आपके पार्सर सेटअप पर निर्भर करता है, लेकिन यह आमतौर पर एक सूची के सूचियों या जोड़ों की तरह दिखता है।

nimble_csv का उपयोग करके CSV डेटा लिखना सही प्रारूप में अपने डेटा को मैन्युअली बदलने और फिर इसे एक फाइल में लिखने की आवश्यकता है, मूल Elixir उदाहरण की तरह, लेकिन सही प्रारूपित CSV पंक्तियों के उत्पादन के लिए nimble_csv का लाभ उठाना।

अपने कार्य की जटिलता के लिए उपयुक्त दृष्टिकोण का चयन करके, आप Elixir में CSV फाइलों को बहुत लचीलापन और शक्ति के साथ संभाल सकते हैं।