Rom*_*rik 12 c++ java r file prepend
想象一下你有一个文件
sink("example.txt")
data.frame(a = runif(10), b = runif(10), c = runif(10))
sink()
Run Code Online (Sandbox Code Playgroud)
并希望添加一些标题信息,如
/* created on 31.3.2011 */
/* author */
/* other redundant information */
Run Code Online (Sandbox Code Playgroud)
我该如何添加这个"标题"?手动完成它似乎微不足道.点击几下进入,复制/粘贴或写入信息就完成了.当然,在R中,我可以读入example.txt,创建example2.txt,添加标题信息然后example.txt.
我想知道是否有另一种方式从"顶部"附加文件.其他解决方案(来自c ++或Java ...)也欢迎(我很好奇其他语言如何解决这个问题).
在R中,不需要使用额外的文件.你可以这样做:
writeLines(c(header,readLines(File)),File)
Run Code Online (Sandbox Code Playgroud)
然而,使用linux shell似乎是最佳解决方案,因为R并不以高性能文件读写而闻名.特别是因为你必须先读完整个文件.
示例:
Lines <- c(
"First line",
"Second line",
"Third line")
File <- "test.txt"
header <- "A line \nAnother line \nMore line \n\n"
writeLines(Lines,File)
readLines(File)
writeLines(c(header,readLines(File)),File)
readLines(File)
unlink(File)
Run Code Online (Sandbox Code Playgroud)
在linux shell中它很简单:
echo 'your additional header here' >> tempfile
cat example.tst >> tempfile
mv tempfile example
rm tempfile
Run Code Online (Sandbox Code Playgroud)
在任何语言中,最终只有一种解决方案.那就是覆盖整个文件:
contents = readAllOf("example.txt")
overwrite("example.txt", header + contents )
Run Code Online (Sandbox Code Playgroud)