我正在编写的 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)