Ruby:将文本附加到文件的第二行

Ruby:将文本附加到文件的第二行,ruby,string,file,Ruby,String,File,我正在编写的Ruby脚本将每天早上运行,它将提取有关备份文件的信息,并将它们写入csv文件。此文件的第一行有列名 我通过在文件末尾附加以下内容使其正常工作: open("#{curDir}/Backup_Times.csv", 'a') do |f| ... end 我想先看到最新的数据,而不必在Excel中排序 在Ruby中,有没有一种方法可以从文件的第二行开始写入数据?您可以编写一个新文件,在所需行应用更改,然后将结果重命名回原始文件名。以下方法将复制文件并将输出文件对象

我正在编写的Ruby脚本将每天早上运行,它将提取有关备份文件的信息,并将它们写入csv文件。此文件的第一行有列名

我通过在文件末尾附加以下内容使其正常工作:

open("#{curDir}/Backup_Times.csv", 'a') do |f|

        ...
end
我想先看到最新的数据,而不必在Excel中排序


在Ruby中,有没有一种方法可以从文件的第二行开始写入数据?

您可以编写一个新文件,在所需行应用更改,然后将结果重命名回原始文件名。以下方法将复制文件并将输出文件对象生成到正确行的块,以便块可以输出新行

def insert_lines_following_line file, line_no
  tmp_fn = "#{file}.tmp"
  File.open( tmp_fn, 'w' ) do |outf|
    line_ct = 0
    IO.foreach(file) do |line|
      outf.print line
      yield(outf) if line_no == (line_ct += 1)
    end
  end
  File.rename tmp_fn, file
end

insert_lines_following_line( "#{curDir}/Backup_Times.csv", 1 ) do |outf|
  # output new csv lines in this block
  outf.puts ['foo','bar','baz',1,2,3].join(",") # or however you build your csv line
end

您能否重新表述这个问题,以更好地说明您正试图实现的目标?读取所有文件并将修改后的文件作为一个整体写回是一种选择吗?