You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用write函数向文件追加数据?为何测试代码未达预期?

问题原因解析

你遇到的问题核心在于文件连接的打开模式与write()函数append参数的生效条件不匹配:

  1. 当你提前用file()创建文件连接f但未指定打开模式时,第一次调用write()会自动以**覆盖写入模式("w")**打开该连接——这会清空目标文件,写入1:5,且连接保持打开状态。
  2. 第二次调用write()时,虽然指定了append = T,但这个参数仅在文件连接未被提前打开的场景下生效。一旦连接处于打开状态,append参数无法修改已有的连接模式,此时仍然是覆盖写入模式,所以6:10会直接替换掉之前的内容。

验证与修正方案

如果要实现追加效果,有两种可行写法:

写法1:直接传入文件名,让write()自动管理连接

write(1:5,  ncolumns = 5, "append2me.txt")
write(6:10, ncolumns = 5, "append2me.txt", append = TRUE)

print(readLines("append2me.txt"))

写法2:手动指定连接的打开模式

# 第一次以覆盖模式写入
f <- file("append2me.txt", open = "w")
write(1:5, ncolumns = 5, f)
close(f)

# 第二次以追加模式打开连接
f <- file("append2me.txt", open = "a")
write(6:10, ncolumns = 5, f)
close(f)

print(readLines("append2me.txt"))

以上两种写法都能得到预期的[1] "1 2 3 4 5" "6 7 8 9 10"输出。

内容的提问来源于stack exchange,提问作者pietrodito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:05:23