【问题标题】:Reading value from a .txt file and writing it into output file从 .txt 文件中读取值并将其写入输出文件
【发布时间】:2016-08-29 03:42:59
【问题描述】:

我正在尝试从文件夹中读取文件,对它们进行计数,然后使用带有长度的 for 循环遍历每个文件,使用 cat 函数,对于第一个文件,将输出放入 output.txt 像:

  • file1:猫输出
  • file2:猫输出

我的代码如下:

entry = list.files(path = "//Users//michael/Desktop//test_folder", full.names = TRUE, recursive = TRUE)
output = list.files(path = "//Users//michael/Desktop//list.txt", full.names = TRUE, recursive = TRUE)
len = length(entry)
for(i in 1){
cat(entry,file="//Users//michael/Desktop//list.txt", sep="\t", append=TRUE)
cat("\n",file="//Users//michael/Desktop//list.txt", append=TRUE)
}

我也尝试过使用for(i in 1:len),但这只会使这个 x3 更长,因为它会在每次迭代 'i' 时都这样做。

我的 test_folder 看起来像:

  • 文件 1.txt 中的值 (John, Michael, Fabian ) 每一个都在一个新行中 (\n)
  • 文件 2.txt 具有相似的值

总结一下:
我正在尝试加载我的 test_folder,计算文件数(在我的情况下为 2),遍历 for 循环中的每个文件和 cat 它们,这样我就可以看到里面有什么,然后在我的 list.txt(输出)中打印值像这样的格式:

  • file1:猫输出
  • file2:猫输出

我的错误在哪里?为了使这项工作正常进行,输出/更改的代码应该是什么样子?

【问题讨论】:

  • 试图了解您的目标是什么:您要生产的最终产品是什么?
  • @MichaelDavidson 这是学习曲线。我只想浏览文件夹中的文件(只有 .txt 文件)> cat 它们并在 output.txt 文件中打印它们的值。只是一个学习曲线。稍后我会将一些代码与可以做其他事情的函数交换。你有什么意见吗?我该怎么做?谢谢!

标签: r file-io


【解决方案1】:

好的,如果我理解正确的话,您想从一个目录中打开多个 .txt 文件,然后连接它们的内容。我建议使用list.files(就像你已经使用的那样)然后lapplyreadLines 打开这些文件。

获取 .txt 文件的位置。这会生成一个列表,列表中的每个元素都是一个目录(文件位置):

dirs <- list.file(path="path/to/input/directory", full.path=TRUE)

使用 lapply 遍历列表的元素(如您的 for 循环)并使用函数 readLines 打开它们。这将生成一个与dirs 具有相同数量元素的列表,但这次它包含文本文件的内容:

myfiles <- lapply(dirs, readLines)

最后,将列表中的这些元素(每个元素包含一个文本文件的内容)组合成一个对象,您可以将其保存为单个文本文件。

dat <- do.call("rbind", myfiles) # note rbind might need to be replaced with "c" depending on the contents of the .txt files

对不起,如果我遗漏了什么或误解了。请发表评论,我会做出相应调整。

【讨论】:

  • 这确实有效!我有第二个问题要问你。现在我正在尝试从某个文件夹加载图像并使用 mxnet 库获取图像的结果。例如,如果我从文件夹加载图像并且上面有一只兔子,那么某种输出应该类似于 "it's 90% rabbit" 。我有一个适用于 1 个图像的版本,但现在我试图将其更改为不止一个。这就是为什么这一切。你有什么提示吗? :) 也感谢您的解决方案
  • 很高兴工作。我会查看其中一些教程:mxnet.io/packages/r/index.html我没有使用过那个包。试一试后,您可以发布一个新问题。
猜你喜欢
  • 2018-08-09
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
  • 2020-02-20
  • 2018-08-07
  • 2013-03-18
  • 1970-01-01
相关资源
最近更新 更多