如何将特定文件从子文件夹复制到 R 中的另一个文件夹?

哈贾姆

新年快乐!

你好,

我想将子文件夹中具有特定名称的文件复制到另一个文件夹(与主文件夹同名)。为了澄清我的问题,我举了一个例子。父文件夹(“Histomach”)包含 60 个子文件夹(iefirst_subfolder:“TCGA_02”、“TCGA_06”、...),每个文件夹包含 4 个子文件夹(iesecond_subfolder:“f”、“T1”、“T2”、“t1c”)也在他们每个人都有多个文件。

我想从这些文件中选择具有“_skullstrip_out.nii”等模式的特定文件,并将其复制到另一个文件夹(即“base-line”),并使用相同的第一个子文件夹名称(即“TCGA-02”、“TCGA_06”) ”,……)。

我试过这个代码。

parent_folder<-"D:/PHD/HISTOMATCH"
setwd(parent_folder)
mainfolder<-list.files(parent_folder)
first_subfolder<-list.dirs(parent_folder,recursive = FALSE)
newdir<-"D:/PHD/base_line"
dir.create(newdir)
for(i in 1:length(mainfolder)){
  
  folder<-dir.create(paste(newdir,mainfolder[i]))}

  for(i in 1:length(mainfolder)){
    second_subfolder<-list.dirs(first_subfolder[i],
                                 recursive = FALSE)
    for(f in 1:length(second_subfolder)){
      filesname<-list.files(second_subfolder[f])
      selectefile<-grepl('-skullStrip_Output.nii.gz$',filesname)
      file.copy(from =second_subfolder[f] ,to=paste(newdir,mainfolder[i]))
      
    }
}
尽管没有发生错误,但复制失败。

我该如何处理这个问题?

如果你能给我这个问题的解决方案,我将不胜感激。

先感谢您。

安德斯·埃伦·比尔格劳

据我了解您的问题,我认为以下内容会让您走得更远。至少,您的所有for循环都不是必需的。相反,您应该使用带有递归参数的现有文件操作函数。

您没有提供任何要使用的数据。我玩弄了 R 目录中的文件。我试图对“doc”文件夹中的所有 .pdf 文件做本质上相同的事情,并将它们复制到与“doc”(即工作目录)相同级别的“mytest”文件夹中。

# To make a reproducible example  
setwd(R.home()) # Your working dir should be the folder "PHD" that contains "Histomach". 

# Define from and to dirs, and the file pattern
from_dir <- "doc"     # should be "Histomach" in your case
to_dir   <- "mytest"  # "base-line"
pattern  <- ".pdf"    # "_skullstrip_out.nii",


# Get all relevant files
the_files <- list.files(path = from_dir, 
                        recursive = TRUE,
                        pattern = pattern)

# Create the "to_dir" as well as all corresponding subdirs (where files to copy were found)
sapply(file.path(to_dir, dirname(the_files)), 
       dir.create, recursive = TRUE, showWarnings = FALSE)

# Copy the files
file.copy(from = file.path(from_dir, the_files), 
          to   = file.path(to_dir,   the_files))

这样做你想要的吗?

要清理我在 R 文件夹中造成的混乱,请运行

file.remove(file.path(to_dir, the_files))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将文件从文件夹和子文件夹复制到R中的另一个文件夹?

如何将文件夹复制到 Makefile 中的另一个文件夹?

如何将一个文件夹复制到另一个文件夹

如何将列表中的特定文件从子文件夹复制到文件夹?

如何将一个文件夹中的所有文件复制到另一个文件夹并更改扩展名?

如何使用Powershell将文件夹的内容复制到另一个特定的文件夹?

如何将几个文件夹中的文件复制到另一个目录

将文件夹列表复制到另一个文件夹?

将特定文件复制到另一个文件夹

R中htmlwidget的savewidget,无法将html文件保存在另一个文件夹中

如何将文件复制到另一个文件夹并删除文件

如何将具有相同名称的文件夹递归复制到Google Colab中的另一个文件夹

如何将Google文档复制到Google Drive Service中的另一个文件夹

NodeJS - 如何将一个文件夹复制到另一个文件夹,只覆盖不同的文件?

使用Python将子文件夹中的图像复制到另一个文件夹

如何将两个最新的日志文件复制到另一个文件夹?

如何将一种特定类型的所有文件从一个文件夹复制到 Python 中的另一个文件夹

使用R将多个文件从多个文件夹复制到单个文件夹

将文件从一个文件夹复制到另一个文件夹

如何将一系列顺序命名的文件从多个文件夹复制到另一个文件夹?

将文件从文件夹和子文件夹复制到另一个文件夹并保存文件夹的结构

如何将文件夹从一个目录复制到另一个目录,文件夹覆盖而不是合并?

如何将文件从资源内部的子文件夹复制到SpringBoot项目资源内部的另一个子文件夹

如何将带有文件的文件夹复制到Unix / Linux中的另一个文件夹?

将内容从一个文件夹复制到另一个文件夹

根据 OSX 终端中的已知文件夹名称列表将文件夹复制到另一个文件夹

如何仅将文件夹从目录复制到另一个目录

如何仅将指定目录中的文件复制到另一个文件夹

将文件名末尾带有特定文本的文件从一个文件夹复制到另一个文件夹