2017-09-11 51 views
4

我有一個R腳本需要一個文件作爲輸入,我想知道輸入是否是存在的文件,而不是目錄。R測試是否存在一個文件,而不是一個目錄

在Python,你會做這樣:How do I check whether a file exists using 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 

R有一個叫做file.exists()的東西,但是這並不區分文件和目錄。

回答

4

的解決方案是使用file_test()

這給shell風格的文件測試,並且可以從文件夾中的文件區分開。

E.g.

input.good = "~/directory/file.txt" 
input.bad = "~/directory/" 

file_test("-f", input.good) # returns TRUE 
file_test("-f", input.bad) #returns FALSE 

從手冊:

用法

file_test(OP,X,Y)參數

運算的字符串指定測試執行。一元 測試(僅使用x)是「-f」(存在而不是目錄), 「-d」(存在和目錄)和「-x」(可執行文件或 可搜索作爲目錄) 。二進制測試是「-nt」(嚴格來說比使用修改日期更新的 )和「-ot」(嚴格大於): 在兩種情況下測試都是假的,除非兩個文件都存在。

x,y給出文件路徑的字符向量。

4

有一個dir.exists功能在所有最新版本R.

file.exists(f) && !dir.exists(f) 
相關問題