У меня есть большое количество файлов изображений, взятых в течение нескольких месяцев, которые хранятся в одном каталоге. Я пытаюсь скопировать файлы в серию новых каталогов, с одним каталогом для каждой недели фотографий, которые все содержатся в каталоге для сайта, где они были сделаны (поэтому все фотографии, сделанные на 12 неделе на сайте TM C в ../TMC/week_12
и т. д.). Мне также нужен CSV в каждом каталоге со списком всех файлов за эту неделю с их отметкой времени. CSV и создание каталога в порядке, но у меня возникают проблемы при копировании файлов в правильные папки.
library('lubridate')
library('purrr')
# photo.df is a data frame with all of the photos, their full filepath, and the timestamp when they were taken.
site.dir <- 'D:/photos/TMC'
# Split the data frame by week.
by.week <- split(photo.df, week(photo.df$datetime))
# Create a subfolder for each week.
walk(seq_along(by.week), function(x){
dir.create(paste(site.dir, '/', 'week_',
as.character(x), sep=''))
})
# Save a list of each week's photos as its own csv in the appropriate subfolder.
walk(seq_along(by.week), function(x){
write.csv(by.week[[x]],
file=paste(site.dir, '/', 'week_', as.character(x), '/',
site, '_photos_', as.character(x), '.csv', sep=''),
row.names=FALSE)
})
И вот где я застреваю. Как выбрать все файлы изображений для данной недели и скопировать их в соответствующий файл, если у меня есть файлы на много недель? Я понимаю, что R, возможно, не лучший инструмент для этой работы, но остальная часть моего рабочего процесса находится в R, так что это то, что у меня есть. Поскольку фрейм данных by.week
содержит полный путь к файлу для каждой фотографии, я подумал, что мог бы объединить by.week[[x]]$filepath
и file.copy()
с функцией для автоматизации процесса, но я не совсем уверен, как это сделать. Любая помощь приветствуется!