75 votes

Quelle est la meilleure façon d'analyser un fichier délimité par des tabulations dans Ruby?

Quelle est la meilleure façon (la plus efficace) d'analyser un fichier délimité par des tabulations dans Ruby?

118voto

Jergason Points 7748

La bibliothèque Ruby CSV vous permet de spécifier le délimiteur de champ. Ruby 1.9 utilise FasterCSV . Quelque chose comme ça fonctionnerait:

 require "csv"
parsed_file = CSV.read("path-to-file.csv", { :col_sep => "\t" })
 

34voto

hqmq Points 48

Les règles de TSV sont en réalité un peu différente de CSV. La principale différence est que le CSV a des dispositions pour coller une virgule à l'intérieur d'un champ, puis en utilisant la citation de caractères et d'échapper les guillemets à l'intérieur d'un champ. J'ai écrit un rapide résumé de montrer comment la simple réponse échoue.

https://gist.github.com/hqmq/5460684

Si vous souhaitez utiliser le CSV bibliothèque, vous pouvez utiliser une citation aléatoire de caractères que vous ne vous attendez pas à voir si votre fichier (l'exemple de gist le démontre), mais vous pouvez également utiliser une méthode plus simple comme le StrictTsv de classe dans les gist pour obtenir le même effet sans avoir à vous soucier de champ de citations.

Le choix de l'utilisation de la CSV bibliothèque ou quelque chose de plus strict, tout dépend de qui est à vous envoyer le fichier et qu'ils s'attendent à respecter strictement les TSV standard.

Liens vers le TSV standard:

http://en.wikipedia.org/wiki/Tab-separated_values

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X