我有一个R脚本,它接受一个文件作为输入,我想要一个通用的方法来知道输入是一个存在的文件,而不是一个目录.
在Python中,您可以这样做:如何使用Python检查文件是否存在?,但我很难在R中找到类似的东西.
假设file.txt
实际存在,我想要的是下面的内容:
input.good = "~/directory/file.txt"
input.bad = "~/directory/"
is.file(input.good) # should return TRUE
is.file(input.bad) #should return FALSE
Run Code Online (Sandbox Code Playgroud)
R有一个叫做file.exists()的东西,但这并不区分文件和目录.
Hon*_*Ooi 13
dir.exists
在所有最新版本的R中都有一个功能.
file.exists(f) && !dir.exists(f)
Run Code Online (Sandbox Code Playgroud)
rob*_*anf 11
解决方案是使用file_test()
这提供了shell样式的文件测试,并且可以区分文件和文件夹.
例如
input.good = "~/directory/file.txt"
input.bad = "~/directory/"
file_test("-f", input.good) # returns TRUE
file_test("-f", input.bad) #returns FALSE
Run Code Online (Sandbox Code Playgroud)
从手册:
用法
file_test(op,x,y)参数
op 指定要执行的测试的字符串.一元测试(仅使用x)是"-f"(存在而不是目录)," - d"(存在和目录)和"-x"(可作为文件执行或可作为目录搜索).二进制测试是"-nt"(严格比使用修改日期更新)和"-ot"(严格地说比旧版本):在两种情况下,除非两个文件都存在,否则测试为假.
x,y 字符向量给出文件路径.
归档时间: |
|
查看次数: |
7088 次 |
最近记录: |