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

标签 python matplotlib stringio

我遇到了以下问题:代码 A 现在可以工作。我在本地保存一个名为 Chart.png 的 png 文件,然后将其加载到专有函数中(我无权访问该函数)。

但是,在代码 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() 的使用对专有函数透明?无论如何,我可以为此在内存中模拟虚拟文件系统吗?

最佳答案

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

关于python - 如何使 cStringIO 对另一个需要真实本地文件的函数透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3917902/

相关文章:

python - PySpark DataFrame 无法正确解析时间

python 如何连接 stringio 对象?

python - 有没有办法在 matplotlib 中绘制标题框

python - 使用 pyplot 创建绘图网格

c++ - 使用 swig 将 python StringIO 传递给 C++ stringstream

python - 将压缩文件提取到内存?

python - Python 中的 KeyError |如何在 Python 中为动态数据并排制作两个 div

python - 在 Alpine Linux 上安装 Pillow 时没有这样的文件或目录 "limits.h"

python - pydrive 仅从列表中获取文件夹

python - 在 Matplotlib 中使用 LaTex 渲染轴标签