From: "Jesús Gabriel y Galán" Date: 2013-04-24T17:57:56+09:00 Subject: Re: BEGINNER - Convert csv file to tsv On Wed, Apr 24, 2013 at 10:45 AM, Jon R. wrote: > Hi, > > I am a beginner at Ruby, but I am trying to convert a csv file into a > tsv file. > > The data is stored in source.csv and I need to out put it to a file in > the same directory called source.tsv, I also need to cater to output to > .txt and .xml, but starting with tsv first. > > > Contents of source.csv > "Firstname","Lastname","Postcode" > "John","Smith","EC1" > "Paula","James","NE13" > > > Output to file source.tsv > Firstname Lastname Postcode > John Smith EC1 > Paula James NE13 > > > I have started with this: > > filename = ARGV.first > output_file_format = ARGV.second > > file = open(filename, "r+") > valid_file_formats = ["tsv"] > > if output_file_format == "tsv" > File.open (filename, "r") do |f| > new_file = File.open("source.tsv", "w") > f.each_line do |line| > fields = line.split (""\n") > fields.each { |fd| fd = "\"#{fd}\"" > new_file.write(fields.join(",") > end > new_file.close > end > > > I understand what I need to do in my head, for each line remove the " or > , characters and replace the , character with a tab (\t), but I am > struggling with the syntax. > > Using a bit of help from http://www.ruby-forum.com/topic/4097630#new > > Thanks in advance I would use the csv in the stdlib to parse the csv: http://www.ruby-doc.org/stdlib-2.0/libdoc/csv/rdoc/index.html Jesus.