2016-07-17 14 views
0

Ich würde gerne CSV-Dateien von einer bekannten Adresse über die Octave-Schnittstelle herunterladen und öffnen, ohne die Dateien herunterladen und sie separat in den aktuellen Ordner verschieben zu müssen. Ich freue mich auf das Herunterladen einer großen Anzahl von CSV-Dateien und es wird ein Schmerz sein, von Hand zu tun.Öffnen Sie eine Online-Datei in Octave

Idealerweise würde ich etwas wie dlmread ('http://...csv') eingeben und Octave die Datei für mich finden lassen. Natürlich funktioniert das nicht.

Eine Lösung für Matlab würde auch für mich arbeiten. Vielen Dank.

+1

See in Octave herunterladen urlread. https://www.gnu.org/software/octave/doc/v4.0.0/URL-Manipulation.html – Andy

Antwort

0

Es klingt wie das, was Sie fragen, ist nicht speziell eine Octave/Matlab native Weg der Download der Dateien, sondern einfach eine Möglichkeit, das Herunterladen und Lesen der CSV-Dateien in einem Skript zu automatisieren, um die Notwendigkeit zu vermeiden Dateien manuell herunterladen und verschieben, bevor Sie Ihr Oktavskript ausführen, ist das korrekt?

Der im obigen Kommentar vorgeschlagene URLread ist ein Weg, aber dann würden Sie mit einer Zeichenfolge stecken, die Sie selbst als Daten interpretieren müssten.

Mein Ansatz wäre, nur die system Funktion zu verwenden, um einen Downloader-Befehl aus dem zugrunde liegenden Betriebssystem auszuführen. Ich würde empfehlen wget. Es ist fertig in Linux, und Sie können auch eine Windows wget.exe Version herunterladen. Das bedeutet, dass wget sich um das Herunterladen kümmert und dann Ihre CSV-Datei mit Standard-CSV-Funktionen wie csvread öffnet.

So zum Download und eine Charge von CSV-Dateien verarbeiten, könnte Ihr Skript wie folgt aussehen:

for n = 1 : 10 
    wgetCommand = sprintf ('wget http://path/to/my/data%d.csv', n); 
    Exitcode = system (wgetCommand); 
    assert (Exitcode == 0, sprintf ('%s failed!\n', wgetCommand)); 
    M = csvread (sprintf('./data%d.csv', n)); 
    % ... do something with M 
end 
+0

Natürlich könnten Sie auch urlread verwenden, um die Datei zu lesen und dann direkt auf der Festplatte als csv und * dann * lies es als csv zurück, wenn du nicht mit der Handschrift der Zeichenfolge umgehen willst. Aber ich glaube, in diesem Fall ist die Verwendung eines Betriebssystembefehls ziemlich legitim. Vor allem, weil es sich anhört, das ist für den persönlichen Gebrauch, anstatt etwas, das Sie Leuten geben werden, die dann in Schwierigkeiten geraten könnten, weil sie wget nicht haben. –