首页 > 解决方案 > 将csv文件从多个目录复制到R中的新目录

问题描述

我正在尝试从多个目录/子目录中提取许多 .csv 文件并将它们复制到一个新文件夹中,我希望最终只得到 .csv 文件。

csv 文件存储在具有以下结构的子目录中:

D:\R data\main_folder\03\07\04\BBB_0120180307031414614.csv
D:\R data\main_folder\03\07\05\BBB_0120180307031414615.csv

我正在尝试 list.files 函数仅提取 csv 文件名。

my_dirs <- list.files("D:\\R data\\main_folder\\",pattern="\\.csv$" ,recursive = TRUE, 
                      include.dirs = FALSE,full.names = FALSE)

问题是 csv 文件与目录路径一起列出,例如

03/07/03/BBB_0120180307031414614.csv

而且,即使 full.names 和 include.dirs 设置为 FALSE。这会阻止我将这些文件复制到新文件夹中,因为无法识别名称。我究竟做错了什么?谢谢

标签: rcsv

解决方案


使用basenamelist.files下面类似的功能。

如果我理解正确,那么您想获取不同目录中存在的.csv文件的名称。

我在 windows 机器的文档目录中创建了一个临时文件夹,里面有两个文件夹“one”和“two”,在这些文件夹中,我有名为“just_one.csv”和“just_two.csv”的 csv 文件。

因此,如果我想获取名称“just_one.csv”和“just_two.csv”,那么我可以这样做:

basename(list.files("C:/Users/C_Nfdl_99878314/Documents/temp", "*.csv", recursive=T))

结果:

[1] "just_one.csv" "just_two.csv"

推荐阅读