У меня есть несколько (под) папок, хранящихся в папке каталога. Каждая подпапка содержит от 5 до 35 файлов аэрофотоснимков в формате .jpg, названных по названию и номеру линии полета (т.е.: bej-3-83). Я хотел бы добавить суффикс к каждому из этих файлов на основе подпапки, в которой они хранятся. Например, если «bej-3-83» хранится в подпапке «T13N_10W», я бы хотел, чтобы мой R-скрипт переименовал «bej-3-83» в «bej-3-83-T13N_10W» и т. д. для каждого файла, хранящегося в каждой подпапке.
Я могу частично выполнить этот процесс, хотя все еще с большим количеством ручного ввода, чем мне хотелось бы, используя этот скрипт:
folder = "C:\\...\\T23N_R14W"
files <- list.files(folder,pattern = "\\.jpg$",full.names = T)
files
sapply(files,FUN=function(eachPath){
file.rename(from=eachPath,to= sub(pattern="_clip", paste0("_T23N_R14W"),eachPath))
})
Но, как вы можете видеть, этот сценарий использует ручной ввод имени подпапки, что бесполезно, когда вы пытаетесь создать сценарий, который делает то, что мне нужно, одним махом.
Я вижу похожие вопросы и ответы, в которых используются «pushd» и «popd», и я прикрепил их к тем темам ниже в виде ссылок. Я пытаюсь прочитать как можно больше об этих функциях, но пока процесс, чтобы заставить его работать, застрял.
Как переименовать файлы в папках в имя папки с помощью пакета файл
Переименовать файлы на основе имени папки
Искренне,
Генри