Hi,
I’m trying to read csv files using FasterCSV.
I have two problems:
-
Some of my files have a few lines of comments before the actual
header.
Is there a way to read the whole file at once, for example with
csv = FasterCSV.read(“filename”, opt)
and have the comment lines ignored (either by telling FasterCSV to
ignore the first n lines or giving FasterCSV a string or regular
expression to match the beginning of the header).
-
Some of my files have no header, but I still would like to read them
as a FasterCSV::Table, rather than an Array of Arrays for ease of column
access and auto-conversion.
How can I do that and is there a way to add a header?
Thanks,
Armin
On May 23, 2007, at 1:54 PM, Armin A. wrote:
Hi,
Hello.
I’m trying to read csv files using FasterCSV.
I have two problems:
- Some of my files have a few lines of comments before the actual
header.
Is there a way to read the whole file at once, for example with
csv = FasterCSV.read(“filename”, opt)
and have the comment lines ignored (either by telling FasterCSV to
ignore the first n lines or giving FasterCSV a string or regular
expression to match the beginning of the header).
There’s no way to get FasterCSV to skip the line. I know one other
person has made this request in the past though, so it may be an
option we need to look at adding.
In the meantime, just skip them manually and hand FasterCSV the IO
object:
csv = open(“filename”) do |io|
code to skip io ahead to the start of the CSV here…
FCSV.new(io, opt).read
end
- Some of my files have no header, but I still would like to read
them as a FasterCSV::Table, rather than an Array of Arrays for ease
of column access and auto-conversion.
How can I do that and is there a way to add a header?
Yes, FasterCSV will accept an Array of headers to use (:headers =>
[:one, :two, …]).
Hope that helps.
James Edward G. II