Wie machen cStringIO auf eine andere Funktion transparent, die eine echte lokale Datei erwartet

StackOverflow https://stackoverflow.com/questions/3917902

  •  29-09-2019
  •  | 
  •  

Frage

kam ich mit dem folgenden Problem auf: CODE A arbeitet jetzt .. Ich bin eine png-Datei speichern lokal genannt chart.png, und dann bin ich es in die proprietäre Funktion geladen (was ich haben keinen Zugang).

Doch in CODE B, versuchen cStringIO.StringIO () zu verwenden, so dass ich die Datei „chart.png“ nicht schreiben müssen, um auf die Festplatte. Aber ich kann nicht einen Weg finden, um es in die pproprietaryfunction passieren, weil es einen echten Dateinamen wie „chart.png“ erwartet (es sieht aus wie es auch die Split-Funktion verwendet die Erweiterung zu identifizieren).

CODE A (Code jetzt ausgeführt):

file = "chart.png"
pylab.savefig(file, format='png')
 a = proprietaryfunction.add(file)

CODE B (was ich versuche zu tun - und nicht funktioniert):

file = cStringIO.StringIO()
pylab.savefig(file, format='png')
 a = proprietaryfunction.add(file)

Wie kann ich die Verwendung von cStringIO.StringIO () transparent für die proprietäre Funktion? Gibt es trotzdem, dass ich ein virtuelles Dateisystem im Speicher für diese emulieren kann?

War es hilfreich?

Lösung

Wahrscheinlich nicht, aber es gibt immer tempfile , wenn Sie eine „saubere“ Abhilfe benötigen. ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top