Скопируйте список вставки файлов из CSV - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть список CSV-файлов TXT (без полного пути, выглядит так: filea.txt), которые находятся в нескольких подкаталогах. Я хотел бы скопировать вставить все эти файлы в один каталог.

Чтобы усложнить задачу, этот список текстовых файлов в формате csv не имеет повторяющегося шаблона. Имена в этом списке должны быть сопоставлены со списком всех текстовых файлов в каталоге.

Кто-нибудь знает, как это сделать?

Вот моя попытка:

 # Target and source
 source <- "C:/Users/blue/Desktop/A"
 target <- "C:/Users/blue/Desktop/B"

 # List of all txt files in main directory
 all.files  <- list.files(path = source,
                         recursive = TRUE,
                         pattern = ".txt",
                         full.names = TRUE)

 # List of specific txt files to extract
 extract.files <- read.csv(paste0(source, "/extract.csv"), head = FALSE, sep=",")

 # Somehow match list of specific files with list of all txt files here

 # Function to copy paste
 my.file.rename <- function(from, to) {
  todir <- dirname(to)
  if (!isTRUE(file.info(todir)$isdir)) dir.create(todir, recursive=TRUE)
  file.copy(from = from,  to = to)
 } 

 # Copy paste
 my.file.rename(from = source,to = target)

1 Ответ

0 голосов
/ 16 ноября 2018

Вам не нужна пользовательская функция.

# Target and source
source <- "C:/Users/blue/Desktop/A"
target <- "C:/Users/blue/Desktop/B"

# List of all txt files in main directory
all.files  <- list.files(path = source,
                         recursive = TRUE,
                         pattern = ".txt",
                         full.names = TRUE)

# List of specific txt files to extract
extract.files <- read.csv(paste0(source, "/extract.csv"), head = FALSE, sep=",")

toCopy <- all.files[which(basename(all.files) %in% unlist(extract.files))]

file.copy(toCopy, target)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...