当前位置: 首页 > 知识库问答 >
问题:

plt.savefig不覆盖现有文件

松铭
2023-03-14

我有一个循环,它运行在一组“程序”名称中,创建一个图,并用xlsxwriter将其放置在一个工作表上。为了这样做,它临时将图保存在本地为“chart.png”。

plt.savefig('chart{}.png'.format(program))
plt.close()
ws.insert_image(r,2,'chart{}.png'.format(program),{'x_scale': 0.5, 'y_scale': 0.5})

这工作得很好,但是它为每个程序创建了一个单独的文件,我有50多个程序。我想简单地创建一个'chart.png'文件,放置它,并为下一个图表覆盖该文件,等等。但是,这段代码:

plt.savefig('chart.png')
plt.close()
ws.insert_image(r,2,'chart.png',{'x_scale': 0.5, 'y_scale': 0.5})

在每张纸上都有一个相同的图表。看起来chart.png并没有被每次新保存覆盖,尽管之前的代码显示matplotlib正在为每个程序创建一个新的图表。谢谢你在这方面的帮助。

共有1个答案

洪俊拔
2023-03-14

worksheet.insert_image()不直接将图像存储到XLSX文件中(Python源代码)。相反,它只将单元格,图像文件名,偏移量,比例等信息记录在一个列表中。

只有在workbook.close()上,XLSX和附带的图像才会存储到磁盘中。因此,您应该只看到文件中重复的图像的最后一个版本。

最简单的方法是在编写XLSX之前需要多个临时映像文件。您可以将它们存储在临时目录中,跟踪文件名并在工作簿写入磁盘后删除这些文件。

 类似资料:
  • 问题内容: 我写了一个大的sql脚本来创建CSV文件。我想每天晚上调用cronjob来创建一个新的CSV文件,并在网站上提供该文件。 假设我将文件存储在“ /home/sites/example.com/www/files/backup.csv”中 我的SQL是 当文件已经存在时,MySQL给我一个错误 文件“ /home/sites/example.com/www/files/backup.cs

  • 问题内容: 目前,我有一个循环,试图通过在文件名字符串中添加后缀来查找未使用的文件名。一旦找不到文件,它将使用无法以该名称打开新文件的名称。问题在于此代码用于网站中,并且可能多次尝试同时执行同一操作,因此存在竞争条件。 如果在检查时间和另一个线程中的打开时间之间创建了一个文件,如何防止python覆盖现有文件。 我可以通过将后缀随机化来最小化机会,但是根据路径名的各个部分,机会已经被最小化了。我想

  • 我的问题是“另存为”对话框。如果我保存为一个不存在的复合文档,那么一切都很好。如果我双击一个现有的复合文档,那么我的代码会询问您是否要覆盖它,这也很好。 但是,错误的是,如果您键入现有复合文档的名称并单击save,它就像您单击cancel一样。 我使用FileFilter和FileView来配置所有文件的显示和过滤。 null (无论如何,在我看来)这是错误的。它应该返回APPROVE_OPTIO

  • } 在检查tar时,只找到“activesensor.cfg”文件,并且发现缺少tar的初始内容。是否“模式”设置不正确?

  • 问题内容: 我想知道是否可以创建多个具有相似名称的文件,而不会覆盖当前文件。 例如:如果我有一个文件:下次创建时xyz.txt应该是:xyz(1).txt 因此,如果我重新运行该程序,则当前文件不会被覆盖。我已经尝试过,如果带有标志变量的条件将数字添加为文件名的前缀。 我想知道是否有任何Java命令来避免覆盖现有文件。 问题答案: 我想知道是否有任何本地Java命令停止覆盖[并将数字添加到文件名中

  • 文件已经存在,您可以覆盖它 (“是”按钮),跳过 (“否”按钮),重命名,全部重命名 ,覆盖全部文件 (“全部皆是” 按钮),跳过全部已存在的文件 (“全部皆否”按钮) 或取消 当前的操作。 如果您选择了全部重命名 模式,重命名文件将得到象 'filename(N).txt' 的名字,'filename.txt' 的位置是原始的文件名, 'N' 是数字。

  • 本文向大家介绍如何在不覆盖现有文档的情况下更新MongoDB文档?,包括了如何在不覆盖现有文档的情况下更新MongoDB文档?的使用技巧和注意事项,需要的朋友参考一下 要仅更新字段值,请使用update()和$set。这不会覆盖现有的。首先让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是更新文档而不覆盖现有文档的查询- 在find()方法

  • 我在学KINTER我有点困惑。下面的代码显示了face_recogniton()函数中的白色文本。 但文本重叠了。在显示新文本之前,如何清除它?