【发布时间】:2022-01-15 13:19:53
【问题描述】:
我的理学硕士项目有 1 TB 的视频和相关文件,我正在尝试重命名 R 中的所有文件。每个摄像机的父文件夹-子文件夹布局如下:
- 相机 ID(例如,C00125)
- YYYY_MM
- DD
- HH(24 小时制)
- CameraID_HHMMSS_#15(文件名)
- HH(24 小时制)
- DD
- DD
- DD
- DD
- YYYY_MM
- YYYY_MM
在每个最终的子文件夹中,都有数量不定的文件,每个唯一的文件名都有 3 种不同的文件类型与之关联:AVI 文件、LBC 文件和 Wav 文件。因此,如果最终子文件夹只有 1 个视频(最多可以有 6 个视频),那么仍然会有 3 个文件,例如C00141_192000_#15、C00141_192000_#15.lbc 和 C00141_192000_#15。 LBC 文件在每个文件名的末尾都有一个文件扩展名“.lbc”。
我需要将每个 camera 中的所有文件编译到每个相机的 1 个文件夹中,但令人沮丧的是,我将拥有一堆基于 HHMMSS 的具有相同文件名的文件,而文件名将不指示每个文件实际关联的 YYYYMMDD。因此,我需要重命名每个文件,以便将相应的 YYYYMMDD 添加到已经具有 CameraID 和 HHMMSS 的当前文件名中。我能看到的最好方法是从每个文件的前 三个 父文件夹中获取 YYYYMMDD 信息(除非您可以以某种方式跳过 HH 子文件夹)。我不在乎我是否保留“_#15”。
理想情况下,这将产生文件名 C00141_2021_05_09_192000_#15(对于上述示例中的三种文件类型中的每一种)。 但考虑到子文件夹的性质,我可以使用 2021_05_09_19_C00141_192000_#15 之类的内容。真正重要的是文件名对其对应的 CameraID、YYYYMMDD 和 HHMMSS 是唯一的,并且一旦文件被重命名并合并在一起,文件就可以在文件资源管理器中按时间顺序排序。 p>
我查看了多个其他论坛,但答案对于帖子中的特定文件名过于专业,并且没有涉及多个子文件夹。我还研究了“批量重命名实用程序”Web 应用程序,它大致可以满足我的需要,但一次只有 1 个子文件夹,这对于我拥有的子文件夹数量(15 台相机 x 3 个月 x ~30 天 x 24 小时)
我已经为此苦苦挣扎了整整 2 天,但一直没有取得太大进展。在我弄清楚这一点之前,我的项目无法取得任何进展,所以我非常感谢任何帮助!我对 R 和编程比较陌生。
【问题讨论】:
-
这似乎不是很困难,但我不明白你想要的具体结果是什么。你能举一个最小的例子,包括原始目录结构和你最终想要的目录结构吗?
标签: r loops file batch-rename