如何使cStringIO对另一个需要真正本地文件的函数透明

时间:2010-10-12 18:41:01

标签: python matplotlib stringio

我提出了以下问题:CODE A现在正常工作..我在本地保存了一个名为chart.png的png文件,然后我将其加载到专有功能(我无法访问)中。

但是,在CODE B中,我尝试使用cStringIO.StringIO(),这样我就不必将文件“chart.png”写入磁盘。但是我找不到将它传递给pproprietaryfunction的方法,因为它期望像“chart.png”这样的真实文件名(看起来它甚至使用split函数来识别扩展名)。

代码A(现在运行的代码):

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

代码B(我正在尝试做什么 - 但不起作用):

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

如何使cStringIO.StringIO()对专有函数透明?无论如何我是否可以在内存中模拟虚拟文件系统?

1 个答案:

答案 0 :(得分:3)

可能不是,但如果你需要一个“干净”的解决方法,总会有tempfile ......