R将文件(csv)从FTP服务器导入数据帧

时间:2019-01-28 17:06:30

标签: r import ftp data-import

我知道在此平台上有许多与此主题相关的帖子,但是没有代码/解决方案能够解决我关于从FTP服务器到R的数据导入的问题。希望能找到解决方案。

我正在尝试从ftp服务器将csv文件导入R(R是本地的;在我的Mac上)。 最好将文件导入到dataframe中。我想仅从ftp服务器导入特定文件,而不是从所有文件导入(可以通过名称标识文件,例如,名称从“ test-file01”到“ test-file66”的所有csv文件)。 我当前的问题是我无法从FTP服务器将单个csv文件导入R。

我尝试过:

url = "ftp://xxxx.de/www_logs/testfolder/"

h = curl::new_handle(dirlistonly=TRUE, userpwd = "xxxx:yyyy")
h
con = curl::curl(url, "r", h)
con
tbl = read.table(con, stringsAsFactors=TRUE, fill=TRUE)

close(con)
head(tbl)


urls <- paste0(url, tbl[1:5,1]) # url
urls
fls = basename(urls) # path
fls
curl::curl_fetch_disk(urls[1], fls[1])

最后一次查询显示错误消息

error in curl::curl_fetch_disk(urls[1], fls[1]) : Access denied: 530

我也在帖子中尝试过     How to pass user and password in new_handle in curl R

userpwd <- "xxxx:yyyyy"
h <- curl::new_handle()
curl::handle_setopt(
  handle = h,
  # httpauth = 1,
  userpwd = userpwd
)

resp <- curl::curl_fetch_disk("ftp://xxxxx.de/www_logs/testfolder/", "testdataframe.csv", handle = h)

不了解resp是什么类型的对象?如何将其转移到dataframe

我也尝试过:

url <- "ftp://xxx.de/www_logs/testfolder/"
userpwd <- "xxxx:yyyy"
bin = getBinaryURL(url, userpwd = userpwd, verbose = TRUE,
                   ftp.use.epsv = TRUE)

load(rawConnection(bin))

最后一次查询会导致错误消息:

Error in load(rawConnection(bin)) : 
the input does not start with the Magic Number, which is necessary for 
loading from a connection

0 个答案:

没有答案