2016-04-15 21 views
2

Ich versuche, Dateien von diesem FTPHerunterladen von Dateien von FTP mit R

ftp://ftp.pride.ebi.ac.uk/pride/data/archive/2015/11/PXD000299/

Von dort zu bekommen, ich brauche nur die Dateien mit der Erweiterung .dat starten. Aber es gibt andere Dateien, an denen ich nicht interessiert bin.

Ich möchte vermeiden, jeden einzelnen auf einmal zu downloaden, also dachte ich über das Erstellen eines Vektors mit den Namen und Schleife über sie.

Wie kann ich nur die Dateien herunterladen, die ich möchte?

Dank

EDIT: Ich habe versucht, die folgenden Aktionen

downloadURL <- "ftp://ftp.pride.ebi.ac.uk/pride/data/archive/2015/11/PXD000299/F010439.dat" 
download.file(downloadURL, "F010439.dat") #this is a trial using one file 

Und nach wenigen Sekunden ich die folgende Fehlermeldung erhalten:

trying URL 

    'ftp://ftp.pride.ebi.ac.uk/pride/data/archive/2015/11/PXD000299/F010439.dat' 
    Error in download.file(downloadURL, "F010439.dat") : 
     cannot open URL 'ftp://ftp.pride.ebi.ac.uk/pride/data/archive/2015/11/PXD000299/F010439.dat' 
    In addition: Warning message: 
    In download.file(downloadURL, "F010439.dat") : 
     InternetOpenUrl failed: 'Die FTP-Sitzung wurde beendet. 

' 

Antwort

4

Verwenden Sie die curl-Bibliothek die extrahieren Verzeichnisliste

> library(curl) 
> url = "ftp://ftp.pride.ebi.ac.uk/pride/data/archive/2015/11/PXD000299/" 
> h = new_handle(dirlistonly=TRUE) 
> con = curl(url, "r", h) 
> tbl = read.table(con, stringsAsFactors=TRUE, fill=TRUE) 
> close(con) 
> head(tbl) 
               V1 
1 12-0210_Druart_Uterus_J0N-Co_1a_ORBI856.raw.mzML 
2 12-0210_Druart_Uterus_J0N-Co_2a_ORBI857.raw.mzML 
3 12-0210_Druart_Uterus_J0N-Co_3a_ORBI858.raw.mzML 
4 12-0210_Druart_Uterus_J10N-Co_1a_ORBI859.raw.mzML 
5 12-0210_Druart_Uterus_J10N-Co_2a_ORBI860.raw.mzML 
6 12-0210_Druart_Uterus_J10N-Co_3a_ORBI861.raw.mzML 

Fügen Sie die relevanten Daten in die URL ein und verwenden Sie

urls <- paste0(url, tbl[1:5,1]) 
fls = basename(urls) 
curl_fetch_disk(urls[1], fls[1]) 
Verwandte Themen