如何遍历多个文件夹中的多个文件?

哈什里亚马

我有 2 个文件夹(文件夹 A 和文件夹 B),每个文件夹都有大约 900 个 .csv 文件。现在我想打开文件夹 A 中的 1 个 csv 文件和文件夹 B 中的 1 个 csv 文件,并想对它们进行一些计算。然后结果(只是一个数字统计值)应该保存在一个单独的列表中。

之后,应该删除两个导入的 cvs 文件,然后我获取下一个 csv 文件:下一个来自文件夹 A,下一个来自文件夹 B。

配对就像:文件夹 A 中的 1_1_Alpha.csv 与文件夹 B 中的 1_1_Beta.csv -> 文件夹 A 中的 3_1_Alpha.csv 与文件夹 B 中的 3_1_Beta.csv 等等......

有谁知道这是否可能?是否有一个包可以同时遍历 2 个文件?我该如何编程?我很乐意提供任何帮助!

r2evans

我认为mapply在这里很有用。目的是用相应的“B”文件迭代每个“A”文件;order 和 set-membership (file-existence) 很重要,否则汇总统计数据可能会产生误导。

Afiles <- sort(list.files("A", pattern = "csv$", full.names = TRUE))
Bfiles <- sort(list.files("B", pattern = "csv$", full.names = TRUE))

## double check file match between the two
Abase <- gsub("Alpha", "", basename(Afiles))
Bbase <- gsub("Beta", "", basename(Bfiles))
AnotB <- !Abase %in% Bbase
if (length(AnotB)) {
  warning("files in 'A' not in 'B': ", paste(sQuote(Afiles[AnotB]), FALSE), collapse = ", "))
  Afiles <- Afiles[!AnotB]
}
BnotA <- !Bbase %in% Abase
if (length(BnotA)) {
  warning("files in 'B' not in 'A': ", paste(sQuote(Bfiles[BnotA]), FALSE), collapse = ", "))
  Bfiles <- Bfiles[!BnotA]
}

## ensure the same order
Afiles <- Afiles[order(Abase)]
Bfiles <- Bfiles[order(Bbase)]

## one final check ... they need to match
stopifnot(all(gsub("Alpha", "", basename(Afiles)) == gsub("Beta", "", basename(Bfiles))))

ABstats <- mapply(function(ax, bx) {
  # some statistic
  return(nrow(ax) - nrow(bx))
}, lapply(Afiles, read.csv), lapply(Bfiles, read.csv))

另一种选择(用于相同文件配对)类似于:

Afiles <- list.files("A", pattern = "csv$", full.names = TRUE)
Bfiles <- gsub("^A/", "B/", gsub("Alpha.csv", "Beta.csv", Afiles))
keep <- file.exists(Bfiles)
Afiles <- Afiles[keep]
Bfiles <- Bfiles[keep]

虽然当 B 文件存在而不匹配 A 时,这不会“报警”。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何重命名多个文件夹中的多个文件?

如何使用python遍历多个文件夹中的所有文件

在多个文件夹中创建多个文件夹。

如何运行子文件夹中的多个.bat文件

如何删除文件夹中多个文件的“ 0”行?

如何将音频文件的文件夹转换为单个文件(遍历多个文件夹)?

如何读取Bash Shell中多个文件夹和子文件夹中的文件

如何将文件夹中的文件复制到多个文件夹中

SAS:遍历文件夹以导入和导出多个文件

VBA 循环遍历子文件夹以打开多个文件

如何从多个文件夹中删除文件,不包括几个文件夹?

gitignore多个文件夹中的给定文件夹

如何将多个文件夹中的pdf文件转换为与文件夹名称匹配的多个pdf文件

如何从Powershell文件夹中的多个文件夹中查找特定短语

如何在具有多个文件夹的文件夹中打开和显示多个文件的内容?

如何在Powershell中创建多个文件夹

如何从多个文件夹中读取图像?

如何在HADOOP中处理多个文件夹

如何在文件夹中搜索多个 PDF

如何在Codeigniter中压缩多个文件夹

如何在powershell中更改多个文件夹名称?

如何使用python合并文件夹中的多个.csv

如何使用PowerAutomate从SharePoint中删除多个文件夹

如何摆脱文件夹中多个shapefile的后缀

从Java中的多个文件夹读取多个txt文件

从Spark中的多个文件夹加载多个文件

从 Python 中的多个文件夹读取多个 CSV 文件?

如何从多个文件夹导入标签?

如何并行删除多个文件夹?