【问题标题】:deleting results after completion of code's execution PYTHON [closed]完成代码执行PYTHON后删除结果[关闭]
【发布时间】:2017-06-13 10:52:15
【问题描述】:

目前我正在做一个项目,我需要保存 n 个图像(在程序范围内使用)。由于要保存的图像数量是动态的,因此最终可能会耗尽我的项目的整个空间。

我想知道是否可以在我的代码中添加一些内容,以便在我的代码 100% 完成后,图像会自动删除,因为在代码执行后我不需要它们。 p>

如何做到这一点?

我需要保存图像,因为它们作为参数传递给我的代码中的一个函数。如果您知道如何传递图像而不将其保存到我的函数中,请评论here

【问题讨论】:

  • 像往常一样进行文件操作,os 已经覆盖(ish)到 os.remove
  • @ason​​gtoruin 你如何在 Windows 上使用它?你能详细说明一下吗?抱歉,如果问题看起来太简单,我是 python 新手。
  • 在 python.org 上阅读文档
  • 尝试一些事情,做一些事情,显示你的代码有问题 - 获得帮助

标签: python arrays image function delete-file


【解决方案1】:

在你完成你需要做的代码后立即删除文件可能是一个想法,即

import os

# Open image
# Manipulate image
os.remove(path_to_image)

【讨论】:

  • 谢谢!但是你如何在windows(特别是Spyder)中使用这个函数n python。我们需要导入什么?
  • 你必须导入操作系统
  • @Drako 我导入了操作系统。但是由于图像被保存在代码中并且 os.remove() 也是从同一代码中调用的,也许这就是函数无法找到图像并显示错误的原因:系统找不到指定的文件: 'D:\\ImageProcessing\\Output\\segment1.png'
  • 你不应该在删除这些图像后寻找它们;或者如果你需要它们,你不应该删除它们;将删除作为最后一项任务
  • 我最后写了这个命令。虽然它以前不工作,但它现在工作。谢谢
【解决方案2】:

跟踪您正在创建的所有图像文件,然后在 finally 块中删除它们,以确保即使引发异常也会删除它们。

import os

temp_images = []

try:
    # ...do stuff

    # ...create image at path_to_file
    temp_images.append(path_to_file)  # called multiple times

    # ...other stuff

finally:
    for image in temp_images:
        os.remove(image)

【讨论】:

    猜你喜欢
    • 2016-08-18
    • 2012-02-08
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    相关资源
    最近更新 更多