如何使用连接作为文件向文本文件添加行

Posted

技术标签:

【中文标题】如何使用连接作为文件向文本文件添加行【英文标题】:How to add lines to a textfile using connection as file 【发布时间】:2018-11-06 07:17:35 【问题描述】:

在这篇文章中解释了如何将行写入文本文件:

Add lines to a file

虽然不能将连接用作文件。 因此无法运行此代码:

for (i in 1:10) 

    con <- file("en_US.twitter.txt", "r")
    line <- readLines(con, i)  
    write(line,file="D:/myfile.txt",append=TRUE)

next

有没有办法克服这个问题?

谢谢!

【问题讨论】:

您是否希望con &lt;- ... 行位于循环的外部 @lefft 谢谢,我会试试这个。 【参考方案1】:

您只想连接两个文件吗?

txt1 <- "Lorem ipsum dolor amet polaroid hot chicken pork belly, mlkshk commodo \
typewriter excepteur. Meditation mixtape edison bulb ad venmo duis mollit \
veniam poke voluptate celiac everyday carry vape hot chicken ea."

txt2 <- "Incididunt copper mug direct trade hella taxidermy. Occupy chia in \
laborum subway tile cornhole XOXO echo park green juice try-hard sustainable. \
Put a bird on it bicycle rights hell of non chillwave blog slow-carb shoreditch \
organic ad waistcoat stumptown qui.\n"

write(txt1, "1.txt")
write(txt2, "2.txt")

# append 1.txt to 2.txt
li <- readLines("1.txt")
write(li, "2.txt", append=TRUE)

cat(readLines("2.txt"), sep="\n")

如果你只想附加前 n 行(在本例中为 2)行

write(txt1, "1.txt")
write(txt2, "2.txt")

li <- readLines("1.txt", 2)
write(li, "2.txt", append=TRUE)

cat(readLines("2.txt"), sep="\n")

仅附加特定的行号(在本例中为 1 和 3)

write(txt1, "1.txt")
write(txt2, "2.txt")

li <- readLines("1.txt")
write(li[c(1, 3)], "2.txt", append=TRUE)

cat(readLines("2.txt"), sep="\n")

【讨论】:

我的最终目标是将特定的行号从文件 twitter.txt 复制到 myfile.txt。这是为了从 twitter.txt 中制作子样本。 readLines() 的输出只是一个字符向量。您可以像使用任何其他矢量一样选择元素。 比如其他什么向量? 请参阅here 了解 R 数据类型的介绍,here 了解更深入的讨论。 谢谢,我会尝试将您的答案整合到我的代码中。虽然我认为问题在于使用连接作为文件。 (另见原帖)

以上是关于如何使用连接作为文件向文本文件添加行的主要内容,如果未能解决你的问题,请参考以下文章

如何从 IFS 下载文本文件的最后一行删除 CRLF

python中向文本每行行尾添加字符

添加一个双空格作为分隔符

如何将文本作为 npm 脚本命令添加到文件中

如何读取文本文件并将其行添加到 Java 中的数组中?

使用 Windows 命令行连接文本文件,删除前导行