【问题标题】:How do I sort files into multiple folders based on a table in R如何根据 R 中的表将文件排序到多个文件夹中
【发布时间】:2016-07-28 21:11:19
【问题描述】:

我想使用 R 将 1000 多张照片组织(排序/移动)到 65 个不同的站点特定文件夹中。我有一个 csv 文件,其中包含照片 ID 和它应该进入的文件夹。我使用 csv 文件创建了我需要的所有文件夹,这非常简单(见下文),但我不知道下一步该做什么将照片实际移动到适当的文件夹。

for (i in 1:length(tracts)) {
    dir.create(file.path(photo_directory, tracts[i]))
}

似乎有很多方法可以解决这个问题,例如 lapply、by、for 循环等。提前致谢!

【问题讨论】:

  • this SO answer 有帮助吗?
  • file.copy() 和朋友(见?files)可能是下一步。我建议您之前保存原始文件夹的副本...如果您一直到这里,您可以生存;-)
  • 假设您使用的是 Windows,假设 srcFilePath 和 destPath 中没有空格,您可能希望通过 shell(paste("move", srcFilePath, destPath)) 使用系统命令。否则用 "\"" 转义。
  • 我已经查看了您建议的代码@eipi10,以及 ?files,这些似乎不适用于我的需要。我需要将照片移动到许多不同的目录,看起来 file.copy 只允许我移动到一个目录。如果我错了,请纠正我。另外,我的 csv 文件(表格)指示每张照片必须转到哪个文件夹,我不知道如何引用表格。
  • 你的 csv 文件有照片的文件名和它应该进入的目录。所以你不能只在名为第 1 列的文件上执行 file.copy 的 for 循环,复制它到第 2 列中命名的目录?

标签: r sorting csv lapply


【解决方案1】:

假设所有照片都位于路径为 pathToDir1 的目录中,并且您的 csv 文件(我们将其称为 df)在第 1 列中具有文件名,在第 2 列中具有目标目录,您不能这样做吗:

for (i in 1:nrow(df)) {
  file.copy(from=paste0(pathToDir1, df[i,1]), to=paste0(df[i,2],"/", df[i,1]))
}

【讨论】:

  • 我不得不做一些修改,但它奏效了。谢谢!
猜你喜欢
  • 2013-12-07
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 2023-02-06
相关资源
最近更新 更多