2

I came up with the following problem: CODE A works right now.. I am saving a png file called chart.png locally, and then I am loading it into the proprietary function (which I do not have access).

However, in CODE B, am trying to use cStringIO.StringIO() so that I do not have to write the file "chart.png" to the disk. But I cannot find a way to pass it to the pproprietaryfunction because it is expecting a real filename like "chart.png" (it looks like it even uses the split function to identify the extension).

CODE A (code running right now):

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

CODE B (what I am trying to do - and does not work):

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

How can I make the use of cStringIO.StringIO() transparent to the proprietary function? Is there anyway that I can emulate a virtual file system in memory for this?

John Machin
  • 81,303
  • 11
  • 141
  • 189
relima
  • 3,462
  • 5
  • 34
  • 53

1 Answers1

3

Probably not, but there's always tempfile if you need a "clean" workaround...

John Machin
  • 81,303
  • 11
  • 141
  • 189
Steven
  • 28,002
  • 5
  • 61
  • 51