我在目录中有一堆csv
个文件。有些文件是空的。我可以使用以下代码删除空文件:
Delete empty csv files in directory - R
setwd('C:/Users/mmiller/Documents/simple R programs/')
my.folder <- paste0(getwd(), '/', 'empty_csv_files/')
setwd(my.folder)
my.delete.empty.csv = lapply(Filter(function(x) countLines(x)==0, list.files(pattern='.csv')), unlink)
my.model.files <- list.files(my.folder, pattern="^model.*?\\.csv")
my.model.list <- lapply(paste0(my.folder, my.model.files), read.csv)
my.model.data <- do.call(rbind, my.model.list)
但是,此代码从目录中物理删除(即,销毁)空csv
个文件。有没有办法简单地跳过或忽略空的csv
文件而不是销毁它们?我觉得有点不舒服破坏文件,因为这似乎消除了所有步骤的清晰和准备好的记录。例如,我可能不太清楚确切地知道有多少文件被销毁了。
以下是我在此示例中使用的文件的内容(model3.csv
为空):
model1.csv
var1
1
2
3
model2.csv
var1
10
20
30
model3.csv
model4.csv
var1
100
200
300
model5.csv
var1
1000
2000
3000
答案 0 :(得分:3)
您可以使用file.size
来测试哪些文件的长度为零并跳过这些文件。
CSV_Files = dir(pattern="*.csv")
CSV_Files[file.size(CSV_Files) > 0]