2013-04-11 81 views
0

我需要sftp獲取一堆文件,並解析它們並擺脫不需要的行並形成數據框。是否有可能從遠程ftp服務器獲取一堆文件並在R中處理這些txt文件?sftp獲取R的文件

這是我到目前爲止已經試過,但我得到驗證錯誤:

library(RCurl) 
url="sftp://ftp.address.com/directory" 
filenames = getURL(url, ftp.use.epsv = FALSE, ftplistonly = TRUE) 
filenames = paste(url, strsplit(filenames, "\n")[[1]], sep = "") 
con = getCurlHandle(ftp.use.epsv = FALSE) 
sapply(filenames, getURL, curl = con) 

我得到這個錯誤:

在功能上的錯誤(類型,味精,asError = TRUE): 未能進行解析主機:sftp :;沒有請求類型的數據記錄

好吧,我已經做到了這一點,它有點工作。

getURL("sftp://site.com/filename.txt", userpwd="id:passed") 

我還沒有做完。我需要的getURL的輸出被寫入到一個文件,這樣我可以做readlines方法對文件進行解析不需要的行等

+3

是的。是的。 [你有什麼嘗試?](http://whathaveyoutried.com) – 2013-04-11 13:45:20

+0

@傑克馬尼,我想使用RCurl,但我沒有看到任何與sftp良好的檢查。只有我看到它的http。 – user1471980 2013-04-11 14:06:12

+0

你確定你不會混淆SFTP和FTPS嗎? – themel 2013-04-11 14:19:26

回答

3
x<-getURL("sftp://site.com/filename.txt", userpwd="id:passed") 
fileConn<-file("output.txt") 
writeLines(x, fileConn) 
close(fileConn) 
y<-readLines("output.txt") 

現在我可以解析出在y。這是我想出的。讓我知道可能有更好的方法來做到這一點?

+1

任何想法如何與其他文件類型做到這一點?如sas7bdat文件 – 2017-05-08 20:28:14