R 能否用于自动化文件迁移?
Can R be utilized to automate file migration?
根据一些回复,我编辑了原来的 post 以使其更具体:)
问题 - 我想弄清楚如何自动执行文件迁移。
这是目录“.../test”中文件结构的摘录
011_433
9087_345
new_files
文件夹 011_433 和 9087_345 中的文件具有一些字符串模式,例如文件名中具有 'B_14' 或 'B_15' 的文件。这些文件散布在文件夹中,因此具有 'B_14' 的文件不会仅驻留在一个文件夹中(具有其他模式的文件也是如此)。文件夹 new_files 是我希望将文件迁移到的位置,这样它们就位于根据其模式命名的文件夹中,例如:
目录“.../test/new_files”将包含如下子目录:
B_14
B_15
其中每个文件夹将包含名称具有与文件夹名称匹配的字符串模式的文件。
这是我到目前为止所做的,它有效,但我真的不知道如何在这之外自动化它,因为文件模式名称没有任何押韵或理由。
library(filesstrings)
path <- "C:/my_directory/test/"
setwd(path)
#get a list of all files in test directory sub folders that match a specific #string pattern
B_14_ <- list.files(path, pattern = "_B-14", recursive = TRUE)
#move all the files from test into their respective folder under 'new_files'
file.move(B_14_, "C:/my_directory/test/new_files/B_14"
#repeat for the next pattern....
B_15_ <- list.files(path, pattern = "_B-15", recursive = TRUE)
file.move(B_15_, "C:/my_directory/test/new_files/B_15"
#etc.
我的问题是我可以再自动化它吗?如果我有一个包含所有字符串模式的列表,我能否以某种方式将其合并到其中?
感谢您的帮助!
当然,这里还有一个抽象层次:
path <- "C:/my_directory/test/"
setwd(path)
patts = c("B-14", "B-15")
dirs = sub(pattern = "-", replacement = "_", x = patts, fixed = TRUE)
for (i in seq_along(patts)) {
files <- list.files(path, pattern = paste0("_", patts[i]), recursive = TRUE)
file.move(files, paste0("C:/my_directory/test/new_files/", dirs[i]"))
}
根据一些回复,我编辑了原来的 post 以使其更具体:)
问题 - 我想弄清楚如何自动执行文件迁移。
这是目录“.../test”中文件结构的摘录
011_433
9087_345
new_files
文件夹 011_433 和 9087_345 中的文件具有一些字符串模式,例如文件名中具有 'B_14' 或 'B_15' 的文件。这些文件散布在文件夹中,因此具有 'B_14' 的文件不会仅驻留在一个文件夹中(具有其他模式的文件也是如此)。文件夹 new_files 是我希望将文件迁移到的位置,这样它们就位于根据其模式命名的文件夹中,例如:
目录“.../test/new_files”将包含如下子目录:
B_14
B_15
其中每个文件夹将包含名称具有与文件夹名称匹配的字符串模式的文件。
这是我到目前为止所做的,它有效,但我真的不知道如何在这之外自动化它,因为文件模式名称没有任何押韵或理由。
library(filesstrings)
path <- "C:/my_directory/test/"
setwd(path)
#get a list of all files in test directory sub folders that match a specific #string pattern
B_14_ <- list.files(path, pattern = "_B-14", recursive = TRUE)
#move all the files from test into their respective folder under 'new_files'
file.move(B_14_, "C:/my_directory/test/new_files/B_14"
#repeat for the next pattern....
B_15_ <- list.files(path, pattern = "_B-15", recursive = TRUE)
file.move(B_15_, "C:/my_directory/test/new_files/B_15"
#etc.
我的问题是我可以再自动化它吗?如果我有一个包含所有字符串模式的列表,我能否以某种方式将其合并到其中?
感谢您的帮助!
当然,这里还有一个抽象层次:
path <- "C:/my_directory/test/"
setwd(path)
patts = c("B-14", "B-15")
dirs = sub(pattern = "-", replacement = "_", x = patts, fixed = TRUE)
for (i in seq_along(patts)) {
files <- list.files(path, pattern = paste0("_", patts[i]), recursive = TRUE)
file.move(files, paste0("C:/my_directory/test/new_files/", dirs[i]"))
}