2013-04-11 84 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