使用Ruby将标头添加到CSV文件

时间:2014-05-14 04:37:01

标签: ruby csv

我有一个CSV文件,目前没有任何标题。我想为第一列添加标题。有没有办法在Ruby中实现这一目标?

例如,假设我的CSV最初看起来像这样:

1,Testing,Testing,New York
2,Testing,Testing,Boston

我想在第一列添加一个标题,以便我的csv看起来像这样:

my_id
1,Testing,Testing,New York
2,Testing,Testing,Boston

2 个答案:

答案 0 :(得分:2)

这是一种方法。 文件.open的r +模式打开以进行读+写。

file = File.open("data.csv", "r+")
buffer = file.read
file.rewind
file.puts "this is my header"
file.print buffer
file.close

答案 1 :(得分:0)

一种可能的解决方案......

$-i = ".orig"
if ARGV.length == 1 || ARGV.length == 2
  header = ARGV.shift
  buffer = ARGF.read
  puts header
  print buffer
else
  STDERR.puts "Must supply one or two command-line arguments:"
  STDERR.puts "\tdesired header (in quotes if it contains spaces)"
  STDERR.puts "\tthe name of the file to prepend the header to"
  STDERR.puts "If the second argument is omitted, reads from STDIN"
end

$-i将使用后缀" .orig"制作原始输入文件的备份副本。附加,原始文件名现在将包含指定的标题,后跟原始内容。