Ausgabearray in CSV in Ruby

Oluwafisayo Oluwatayo 15 Februar 2024
  1. Was ist CSV
  2. Erstellen Sie eine CSV-Datei mit der Methode CSV.open in Ruby
  3. Erstellen Sie eine CSV-Datei mit der Methode File.write in Ruby
  4. Generieren Sie die CSV-Datei im Terminal mit Ruby
  5. Abschluss
Ausgabearray in CSV in Ruby

Es gibt Zeiten, in denen wir es mit einer langen Liste von Informationen zu tun haben und diese so organisieren müssen, dass sie leicht lesbar sind. das bringt der CSV auf den Tisch.

Was ist CSV

CSV bedeutet comma-separated values, was bedeutet, dass Daten durch Kommas getrennt formatiert werden.

Ein solches Ausgabeformat sorgt dafür, dass unsere Daten in einem tabellarischen Format gut organisiert sind, sodass eine Person, wenn sie diese Daten durchgeht, sie bei Bedarf leicht lesen und bearbeiten kann.

CSV-Daten können entweder in einem eigenen .csv-Format oder in einer gebräuchlicheren .txt-Datei gespeichert werden.

Sehen wir uns unter Verwendung des Ruby-Frameworks verschiedene Möglichkeiten zum Erstellen von CSV-Dateien aus den Daten in einem Array an.

Erstellen Sie eine CSV-Datei mit der Methode CSV.open in Ruby

In diesem Beispiel erstellen wir eine CSV.open-Funktion und geben den Pfad ein, wo die Datei sein soll; Dann geben wir das Datenarray ein, das wir im CSV-Format in einem CSV-Tag organisieren möchten.

Wir erstellen eine neue Datei, nennen sie new.rb und geben diese Codes ein:

require 'csv'
CSV.open("C:/Users/HP/Downloads/csv/outfield.txt", "w") do |csv|
  csv << ["one", "two", "three", "four"]
  csv << ["eight", "five"]
  # ...
end

Sobald wir diesen Code ausführen, sehen wir die Datei outfield.txt, die in dem Pfad erstellt wurde, den wir in der Klammer CSV.open angegeben haben. Dann werden wir sehen, dass wir direkt neben dem Pfad ein "w" hinzugefügt haben, um sicherzustellen, dass wir eine Datei innerhalb des angegebenen Pfads erstellen können.

mit der CSV-Open-Funktion

Wenn wir dort das "w" wegnehmen, sehen wir die Fehlermeldung: nicht zum Schreiben geöffnet (IOError).

Erstellen Sie eine CSV-Datei mit der Methode File.write in Ruby

Bei dieser Methode müssen wir dem Pfad, in dem die Datei erstellt werden soll, kein "w" hinzufügen. Dies liegt daran, dass File.write sofort den Pfad zum Schreiben öffnet und dann die Datei erstellt.

Wir erstellen eine neue Datei, nennen sie new.rb und geben diese Codes ein:

tables = [["first", "second", "third"],["army", "marine", "navy", "blackops"], ["James", "Bond", "007"]]
require "csv"
File.write("C:/Users/HP/Downloads/csv/outfe.txt", tables.map(&:to_csv).join)

Hier haben wir das Array innerhalb des tables-Tags erstellt; Dann haben wir den Ort angegeben, an dem die Datei in der Funktion File.write() erstellt werden soll.

Dann verwenden wir die Funktion map, um die Daten im Tabellen-Array im CSV-Format zurückzugeben. Wenn wir diesen Code ausführen, sehen wir nach einigen Augenblicken die neue Datei, die in dem von uns angegebenen Pfad erstellt wurde.

mit der Dateischreibfunktion

Generieren Sie die CSV-Datei im Terminal mit Ruby

Diese Methode erstellt keine Datei mit den Daten im CSV-Format; stattdessen zeigt es die Daten direkt im Terminal an; Das ist großartig, wenn wir die Ergebnisse schnell verwenden oder die Daten in einem ansprechenderen Format lesen möchten.

Wir erstellen eine neue Datei und nennen sie new.rb, dann geben wir diese Codes ein:

require 'csv'
csv_string = CSV.generate do |csv|
  csv << ["google", "bing", "ask", "search"]
  csv << ["find", "seek"]
  # ...
end

Die Funktion CSV.generate nimmt das Array in den Klammern csv und generiert die Daten im CSV-Format. Sobald wir den Code ausführen, sehen wir die Daten im CSV-Format direkt im Terminal.

Zeichenfolge mit Terminal

Abschluss

Die Eigenschaft der CSV, Daten übersichtlich zu organisieren, indem sie durch Kommas getrennt werden, erleichtert das Durchsuchen einer langen Liste von Daten.

Oluwafisayo Oluwatayo avatar Oluwafisayo Oluwatayo avatar

Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.

LinkedIn