我编写了一个程序,使用Python中的MatPlotLib从CSV文件中输出多个不同的饼图(超过60个)。我不认为我需要共享所有代码,但我有一个创建图表的draw()
函数,结尾如下:
def draw(data):
[make the graph]
plt.savefig(filename)
此函数成功将我的一个图形作为cwd中的.png文件。然后我运行一个循环,为我的数据的每个部分创建一个饼图。代码如下:
if __name__ == '__main__':
data = sys.argv[1]
things = process(data)
for thing in things.values():
draw(thing)
我想知道是否有任何Python软件包可以帮助我自动将所有60多个图表输出到一个zip文件。
答案 0 :(得分:5)
当然,有标准zipfile模块,可以压缩现有文件,也可以压缩一串字节。因此,如果您不想单独创建文件然后压缩它们,则可以将它们保存到BytesIO个对象,然后压缩这些字节缓冲区。我已将您链接到Python 3文档,但这些功能也可在Python 2中使用。
答案 1 :(得分:2)
如果您要保存png
和zip
,可能出于调试目的,可以执行类似zipfile
的操作:
import zipfile
zf = zipfile.ZipFile('myzip.zip', mode='w')
zf.write('image1.png')
zf.write('image2.png')
# ...
zf.close()