J'ai un fichier CSV appelé "A.csv". J'ai besoin de générer un nouveau fichier CSV appelé "B.csv" avec les données de "A.csv".
J'utiliserai un sous-ensemble de colonnes de "A.csv" et devrai mettre à jour la valeur d'une colonne avec la nouvelle valeur dans "B.csv". Ensuite, j'utilise ces données de B.csv pour valider à la base de données.
Je suis capable de lire le format CSV, d’obtenir un tableau ou un hachage.
Comme mikeb l’a fait remarquer, il existe les docs - http://Ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html - Ou vous pouvez suivre le exemples ci-dessous (tous sont testés et fonctionnent):
Dans ce fichier, nous aurons deux lignes, une ligne d’en-tête et une ligne de données, un fichier CSV très simple:
require "csv"
CSV.open("file.csv", "wb") do |csv|
csv << ["animal", "count", "price"]
csv << ["fox", "1", "$90.00"]
end
résultat, un fichier appelé "fichier.csv" avec:
animal,count,price
fox,1,$90.00
Presque le même forumla que ci-dessus seulement au lieu d'utiliser le mode "wb", nous utiliserons le mode "a +". Pour plus d'informations à ce sujet, voir cette réponse au débordement de pile: Quels sont les modes et options de Ruby File.open?? )
CSV.open("file.csv", "a+") do |csv|
csv << ["cow", "3","2500"]
end
Maintenant, lorsque nous ouvrons notre fichier.csv, nous avons:
animal,count,price
fox,1,$90.00
cow,3,2500
Maintenant, vous savez comment copier et écrire dans un fichier, lire un fichier CSV et donc récupérer les données à manipuler que vous venez de faire:
CSV.foreach("file.csv") do |row|
puts row #first row would be ["animal", "count", "price"] - etc.
end
Bien sûr, cela ressemble à une centaine de façons différentes de tirer des informations d'un fichier CSV en utilisant ce bijou. Pour plus d’informations, je vous suggère de visiter la documentation maintenant que vous avez un guide: http://Ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html
Avez-vous vu la classe CSV de Ruby? Cela semble assez complet. Découvrez-le ici: http://Ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html