将嵌套文件夹和文件名读取为嵌套列表

2024-04-25

我试图将已定义目录的所有文件夹和文件名读取到一个嵌套列表中,该列表与顶层文件夹的数量一样长,然后每个列表元素的元素数量与子目录中的元素数量一样多(如果它是一个文件夹)等等,直到只有文件而没有更多文件夹的级别。

我的用例是我的 iTunes Music 文件夹:

m <- "/Users/User/Music/iTunes/iTunes Media/Music"  # set the path to the library folder
x <- list.files(m, recursive = FALSE)               # get all artists names (folder names on top level)
# read all Albums and title of each song per album
lst <- setNames(lapply(paste(m, x, sep = "/"), list.files, recursive = T), x)  

中各元素的结构lst is now:

#$`The Kooks`                                       # artist name "The Kooks"
# [1] "Inside In Inside Out/01 Seaside.mp3"         # album name "Inside In Inside Out", title "01 Seaside.mp3"
# [2] "Inside In Inside Out/02 See The World.mp3"                 
#...                           
#[16] "Konk/01 See The Sun.mp3"                     # second album of The Kooks
#[17] "Konk/02 Always Where I Need To Be.mp3"               

我想做的是使每个艺术家的条目嵌套列表,所以在示例中会有列表元素$TheKooks其中有 2 个(子)列表(每个专辑 1 个):$Inside In Inside Out and $Konk每个专辑列表中都有一个标题名称向量(没有专辑名称)。

我(还)找不到正确的答案,并尝试过(不成功),除此之外:

list.files(m, recursive = TRUE)

and

lapply(lst, function(l) {
  strsplit(l, "/")
})

怎样做才正确呢?

P.S.:

  • 您可以将所需的输出视为列表结构,其中每个文件/文件夹名称仅与实际文件/文件夹中出现的频率相同。
  • 作为最好的情况,我希望找到一个足够灵活的解决方案,以允许不同的文件夹级别,并且不需要那么多explicitlapply 随文件夹深度调用

以下函数识别目录中的文件和文件夹。然后,它针对每个已识别的文件夹再次调用自身,创建包含找到的所有文件和子文件夹的列表。

fileFun <- function(theDir) {
    ## Look for files (directories included for now)
    allFiles <- list.files(theDir, no.. = TRUE)
    ## Look for directory names
    allDirs <- list.dirs(theDir, full.names = FALSE, recursive = FALSE)
    ## If there are any directories,
    if(length(allDirs)) {
        ## then call this function again
        moreFiles <- lapply(file.path(theDir, allDirs), fileFun)
        ## Set names for the new list
        names(moreFiles) <- allDirs
        ## Determine files found, excluding directory names
        outFiles <- allFiles[!allFiles %in% allDirs]
        ## Combine appropriate results for current list
        if(length(outFiles)) {
            allFiles <- c(outFiles, moreFiles)
        } else {
            allFiles <- moreFiles
        }
    }
    return(allFiles)
}
## Try with your directory?
fileFun(m)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将嵌套文件夹和文件名读取为嵌套列表 的相关文章

  • 如何在 R 中解析堆叠多个 JSON 的文件?

    我在 R 中有以下 堆叠 JSON 对象 example1 json ID 12345 Timestamp 20140101 Usefulness Yes Code event1 A result 1 ID 1A35B Timestamp
  • 安装 gplots 时出错

    我正在 OSX v 10 9 2 上运行 R v 3 0 3 当尝试使用以下命令在 R studio 中安装 gplots 包时 出现错误 gt library gplots Error in library gplots there is
  • 为什么在 data.frame 中预先指定类型会比较慢?

    我预先分配了一个大 data frame 以便稍后填写 我通常这样做NA是这样的 n lt 1e6 a lt data frame c1 1 n c2 NA c3 NA 我想知道如果我预先指定数据类型是否会让事情变得更快 所以我测试了 f1
  • 无效的命令名称“tk_chooseDirectory”错误

    我使用 bioconductor 进行 WES 管道 并使用 tk choose dir 选择用户存储输入文件的目录 并将其存储以供进一步使用 这里是命令行 library tcltk dataDir lt dirname tk choos
  • 如何上下移动字符串并从中删除相似的字符串?

    我问了一个可能不太清楚的问题 所以我尝试用一 种可以理解的方式来解释它 这是我的数据 我的数据看起来像这样 看起来像这样 V1 V2 V3 1 Q9UNZ5 Q9Y2W1 2 Q9ULV4 Q6QEF8 3 Q9UNZ5 4 Q9H6F5
  • dplyr:带引号变量名的 mutate 的标准评估

    我将如何使用mutate 我的假设是我正在寻找标准评价就我而言 因此mutate 但我对此并不完全有信心 当使用接受变量名列表的函数时 如下所示 createSum function data variableNames data gt m
  • 在防风草模型上使用 VIP 包计算重要性度量

    我正在尝试使用 vi firm 在防风草中制作的逻辑回归模型上计算特征重要性 对于正则表达式 我将使用 iris 数据集并尝试预测观察结果是否为 setosa iris1 lt iris gt mutate class case when
  • 在 R 的替换命令中取消引用字符串

    我想知道是否可以unquote通过替换命令传递给表达式的字符串 具体来说 我使用 dplyr 从数据框中过滤和选择 gt w subject sex response 1 1 M 19 08 2 2 M 16 46 6 6 M 23 60
  • 如何通过组度量的平均值在 df 内排列 dplyr:: 组?

    借鉴吴卡拉的设计https stackoverflow com a 26555424 9350837 https stackoverflow com a 26555424 9350837答案 我希望根据各个组汇总测量的平均值对分组 df 进
  • RMySQL fetch - 找不到继承的方法

    使用 RMySQL 我想将数据从数据库加载到 R 中的数据帧中 为此 我使用以下代码 R连接数据库 con lt dbConnect MySQL user root password password dbname prediction h
  • 在 Windows / Linux 中创建 Mac 包

    我自己努力制作一个 r 包 我按照 stackoverflow 中上一个问题的说明进行操作如何为外行开发软件包 http cran r project org bin windows Rtools 以下是我根据上一个问题采取的步骤 在新的
  • 使用 R SOAP (SSOAP) 检索数据/抓取

    在 B cycle 页面 www bcycle com whowantsitmore aspx 上 我试图抓取投票的位置和值 The URL http mapservices bcycle com bcycleservice asmx ht
  • 在ggplot2中,箱线图线的末尾代表什么?

    我找不到箱线图线条端点代表什么的描述 For example here are point values above and below where the lines end 我意识到盒子的顶部和底部是第 25 个和第 75 个百分位数
  • 使用 R 下载压缩数据文件、提取并导入 .csv

    我正在尝试使用以下方法从网页下载并提取 csv 文件R 这个问题是重复的使用 R 下载压缩数据文件 提取和导入数据 https stackoverflow com questions 3053833 using r to download
  • 使用 R Markdown 文档作为函数源

    我正在研究 R Markdown 来记录我经常使用的功能 我会将它们放入 R Markdown 文件中以记录它们 然后如果我几个月后回来查看它 就能够阅读我在函数背后的想法 我的问题是 如果我开始一个新的 R 项目 是否可以获取 r mar
  • 构造奎因(自我复制功能)

    有没有人构建过 quine 生成自己源文本的副本作为其完整输出的程序 http www nyx net gthompso quine htm http www nyx net gthompso quine htm 在 R 中 quine 标
  • R 获取子字符串和正则表达式?

    我有一组文件名字符串 我想提取 符号之后但文件扩展名之前的所有字符 例如 文件名之一是 HelloWorld you txt 我想返回字符串you 这是我的代码 hashPos grep name fixed TRUE dotPos len
  • R中具有特定条件的多列变异

    我有这个数据 M1 M2 M3 UCL 1 2 3 1 5 我想在这种情况下创建新列 如果M1大于UCL MM1将为 UP 否则为 NULL 如果M2大于UCL MM2将为 UP 否则为 NULL 如果M3大于UCL MM3将为 UP 否则
  • 在列标题和配对变量中嵌入数据的数据透视表

    假设我有这样的数据 不幸的是 变量值嵌入在列名称中 library tidyr library dplyr dat lt tribble group var1 var meta1 var2 var meta2 group1 5 2 cat
  • 在 R 中读入原始二进制数据并将其转换为整数

    我有一个二进制文件 其中包含编码为不同长度 主要是 2 4 字节 的有符号或无符号整数的数值 为了处理这些数据 我将文件的所需部分读取为raw向量与readBin 然后尝试将其转换为十进制 问题是 R的内置函数有限制 我不太明白 比如没有l

随机推荐

  • 如何将 CORS(跨源策略)添加到 NGINX 中的所有域?

    我创建了一个文件夹 用于提供静态文件 CSS 图像 字体和 JS 等 我最终会将文件夹 CNAME 到子域中 以便在 CDN 上使用 以便与我的 Magento 2 设置一起使用 我想允许所有域通过 CORS 跨源策略进行所有访问 并且我也
  • 从 C* 表中获取不同的分区键

    cqlsh 不允许嵌套查询 因此我无法将所选数据导出到 csv 我正在尝试使用以下命令从 cassandra 导出选定的数据 大约 200 000 行 单列 echo SELECT distinct imei FROM listener s
  • 如何在nodejs sdk v12中生成带有SAS签名的azure blob url?

    以前 在旧版 sdk 中 如 v2 您可以生成一个 sas url blob 的签名可共享 url 如下所示 var azure require azure storage var blobService azure createBlobS
  • 将架构名称与 SQL Server 和 ServiceStack.OrmLite 一起使用

    有人知道如何将正确的 Alias 属性应用于具有架构名称的查询表吗 我有一张桌子叫accounts register 我尝试过使用 Alias accounts register 作为 Register 类的类装饰器属性 但这不起作用 如果
  • 在 TWS API 中请求 nextOrderID 不起作用

    我正在尝试使用 python 通过 TWS API 下订单 我的问题是获取下一个有效的订单 ID 这是我正在使用的 from ibapi client import EClient from ibapi wrapper import EWr
  • 使用MongoDB时需要JPA吗?

    我对这两者很困惑 我正在看戏 java框架 它说它使用JPA 我正在考虑使用 Play 第一次在项目中使用 MongoDB 我以前使用过JPA 但当时我用它来写入关系数据库 mysql MongoDB 不是关系数据库 所以如果我想将它与 P
  • SPMD 与 Parfor

    我对 matlab 中的并行计算很陌生 我有一个创建分类器 SVM 的函数 我想用几个数据集来测试它 我有一个 2 核工作站 所以我想并行运行测试 有人可以向我解释一下以下之间的区别 dataset array dataset1 datas
  • 在 Visual Studio 数据库项目/SQL Server 中创建默认数据

    有没有办法在VS 2010的数据库项目中使用数据生成计划来创建一组默认数据 或者我是否找错了树 即数据生成计划是否最适合创建虚拟示例数据 我们有大量需要为每个数据库部署创建的数据 默认设置 默认用户等 如果有工具来帮助我们解决这个问题就好了
  • 在列表中查找最新版本

    我可以在文件夹中搜索所有版本日志行 但我试图选择列表中的最新版本 但我不知道如何选择 因为列表的元素包含字符和数字 下面是我的代码 用于查找和创建一个名为matched lines的列表 其中包含所有说明日志版本号的行 我希望从创建的列表中
  • 带有附加事件的 EventToCommand

    我在附加事件上使用Validation Error的文本框 验证错误 http msdn microsoft com en us library system windows controls validation error 28v vs
  • 条件绑定

    我是 JavaFx 新手 我正在创建一个应用程序 用户必须填写一些表单 并且我想使用绑定 预先验证 它们 简单的事情 比如所有元素都不能为空 或者其中一些元素只能包含数字 这是我到目前为止所拥有的 saveBtn disableProper
  • dotenv-webpack 在 webpack.config.js 中使用环境变量

    My env设置如下 SECRET KEY mysecretkey123 My webpack config js设置如下 const Dotenv require dotenv webpack module exports proxy a
  • 导入时记录器命名与日志记录配置之间不兼容

    我正在通过读取文件并使用来在 main py 中设置 Python 日志记录文件配置 http docs python org library logging config html选项 我希望能够在测试和实时日志记录配置之间切换 因此我想
  • 用于浮点和整数验证的 JavaScript

    我尝试创建一个 javascript 函数validate integer values从文本框 验证它的最佳方法是什么 以便仅integer and float值可以接受吗 数字验证所需的 javascript 函数 remove whi
  • 在 T-SQL 中处理来自 CLR 存储过程的多个结果

    我有一些用 C 编写的复杂算法作为 CLR 存储过程 过程不是确定性的 取决于当前时间 程序的结果是两个表 我没有找到任何解决方案如何处理 T SQL 中存储过程的多重结果 此过程的性能是关键 过程每约 2 秒调用一次 我发现更新表的最快方
  • 使用 Entity Framework 4 和 Code-First 从数据库中排除字段/属性

    我想知道有没有办法从数据库中排除某些字段 例如 public class Employee public int Id get set public string Name get set public string FatherName
  • Cypress:信用卡支付的自动测试[重复]

    这个问题在这里已经有答案了 我正在做信用卡付款的自动测试 不幸的是 测试在 到期日期 项中失败了 my code cy getWithinIframe name cardnumber type 4242424242424242 cy get
  • MySQL 搜索“$”(美元符号)失败?

    被要求在大量文本中查找美元价值 可以对美元符号进行搜索吗 如果是这样 任何示例 指导将不胜感激 当前查询 select from concept where concept description like 您可能想使用LOCATE查看列值
  • 在Spring+Wicket中上传文件

    要使 Java Web 应用程序 使用 Spring Wicket 开发 接受客户端文件上传到服务器上的特定目录 需要执行哪些步骤 在谷歌搜索这个问题的答案时 我看到建议 WEB INF some directory 应该用作上传位置 这是
  • 将嵌套文件夹和文件名读取为嵌套列表

    我试图将已定义目录的所有文件夹和文件名读取到一个嵌套列表中 该列表与顶层文件夹的数量一样长 然后每个列表元素的元素数量与子目录中的元素数量一样多 如果它是一个文件夹 等等 直到只有文件而没有更多文件夹的级别 我的用例是我的 iTunes M