Wie kann ich eine Joblib- oder Beizdatei in Bluemix Object Storage sichern?

9

Ich arbeite mit einer Python-App mit Flask auf Bluemix. Ich weiß, wie man Object Storage mit dem Modul swiftclient benutzt, um einen Container zu erstellen und eine Datei darin zu speichern, aber wie kann ich eine darin enthaltene Joblib oder Pickle-Datei ausgeben? Und wie lade ich es zurück in mein Python-Programm?

Hier ist der Code zum Speichern einer einfachen Textdatei.

%Vor%     
sagar43 13.05.2016, 07:53
quelle

1 Antwort

1

Da sowohl file.open als auch pickle.dumps wie in Python-Dokumenten erscheinende Byte-Objekte zurückgeben:

pickle.dumps (obj, protokoll = Keine, *, fix_imports = True)     Geben Sie die ausgewählte Darstellung des Objekts als Byteobjekt zurück, anstatt sie in eine Datei zu schreiben.

open (Name [, Modus [, Pufferung]])     Öffnen Sie eine Datei und geben Sie ein Objekt des im Abschnitt Dateiobjekte beschriebenen Dateityps zurück. Wenn die Datei nicht geöffnet werden kann, wird IOError ausgelöst. Wenn Sie eine Datei öffnen, ist es vorzuziehen, open () zu verwenden, anstatt den Dateikonstruktor direkt aufzurufen.

Sie können das Objekt, das Sie speichern möchten, einfach als obj like:

angehen %Vor%

Diese Änderung des Inhaltstyps ist auf Standards im HTTP-Protokoll zurückzuführen. Das habe ich von einer anderen SO Frage bekommen, bitte nachsehen. Wie gesagt:

  

Es ist der De-facto-Standard. RFC2046 besagt: 4.5.3. Andere Anwendungsuntertypen Es wird erwartet, dass viele andere Untertypen von "Anwendungen" in der Zukunft definiert werden. MIME-Implementierungen müssen mindestens alle nicht erkannten Subtypen als äquivalent zu "application / octet-stream" behandeln. Bei einem System, bei dem kein Beizmittel verwendet wird, sieht der Stream wie jeder andere Oktettstrom aus, aber für ein System mit Beizmitteln ist dies eine wichtige Information.

    
JeanPaulDepraz 19.05.2016 21:28
quelle