【问题标题】:Subsetting Images into Separate Folders in R将图像子集到 R 中的单独文件夹中
【发布时间】:2018-06-04 03:20:00
【问题描述】:

我有一个文件夹,里面有几千个文件。我想将所有这些文件子集到单独的子文件夹中,每个子文件夹有 15 个文件(不管哪些文件去哪里或子文件夹名称)。基本上,我需要在程序中处理这些文件,并且我想将它们分解为文件夹,其中包含更小、更易于管理的文件数量。

【问题讨论】:

  • 您使用的是什么操作系统?您可能必须使用脚本语言来做到这一点。某些脚本可能是特定于操作系统的。这是一个与操作系统无关的 python 解决方案:gist.github.com/zupo/5849843
  • 我想使用 R

标签: r


【解决方案1】:

您需要几个函数来执行此操作。

list.files 获取所有文件名

dir.create 创建目录和

file.rename 移动文件

AllFiles = list.files("TheFolder")

## Make all of the folders
FolderNumber = floor(1:length(AllFiles)/15) + 1
FolderName = sprintf("Folder%03d", FolderNumber)
for(f in unique(FolderName)) { dir.create(f) }

## Move the files
for(i in 1:length(AllFiles)) {
    file.rename(paste("TheFolder", AllFiles[i], sep="/"),
        paste(FolderName[i], AllFiles[i], sep="/"))
}

如果您要谨慎,可以使用file.copy 而不是file.rename。这将在不删除原始文件夹的情况下复制到文件夹,以便您在删除之前检查一切是否正常。

【讨论】:

  • 我收到此错误:file.rename(paste("TheFolder", AllFiles[i], sep = "/"), paste(FolderName[i], : 'from' 和'to' 的长度不同
  • from 和 to 的长度都应该为 1。要查看什么不起作用,只需键入 i = 1 然后键入 paste("TheFolder", AllFiles[i], sep="/")paste(FolderName[i], AllFiles[i], sep="/") 这两个都工作吗?
  • 是的,paste("TheFolder", AllFiles[i], sep="/") 返回 "TheFolder/NA" 和 paste(FolderName[i], AllFiles[i], sep="/ ") 返回 "Folder001/NA"
  • 只是为了确定 - 您确实将“TheFolder”更改为您的文件夹名称,对吧?
  • 您只是输入了 Allfiles,而不是 AllFiles。 f/F 是否正确?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 2012-08-23
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 2016-05-07
相关资源
最近更新 更多