我有数千个文本文件,想知道如何检查特定文件是否为空。我正在使用这行代码阅读所有文件
Y<-grep("*.txt", list.files(), value = TRUE)
我想要一份所有空白文件的名称列表。必须在R中完成。
感谢。
答案 0 :(得分:24)
您可以使用file.info
:
info = file.info(filenames)
empty = rownames(info[info$size == 0, ])
顺便提一下,列出文本文件的方法比使用grep
更好:指定pattern
的{{1}}参数:
list.files
请注意,模式必须是正则表达式,而不是glob - 对list.files(pattern = '\\.txt$')
也是如此!
答案 1 :(得分:1)
find . -empty
或
find . -empty |awk -F\/ '{print $FN}'
如果您只想限制txt文件:
find . -empty -name "*.txt"
如果你只想要asci文件(不仅仅是.txt)
find . -empty -type f
把它们放在一起:
find . -empty -type f -name "*.txt" |awk -F\/ '{print $NF}'
答案 2 :(得分:0)
在上传之前,使用以下代码检查系统中的文件是否为空。
my_file<-readLines(paste0("<path of file/file name.extension>"))
my_file=="" #TRUE - means the file is empty
答案 3 :(得分:0)
对于功能方法,您可能首先要写一个谓词:
file.empty <- function(filenames) file.info(filenames)$size == 0
然后使用它过滤文件列表:
Filter(file.empty, dir())