使用python可靠地删除临时文件

时间:2017-06-14 06:15:39

标签: python windows

我有一个在Windows 10上运行的应用程序,它使用Python 2.7将临时文件写入磁盘,然后使用关联的应用程序打开它们。

清理使用Edge打开的临时.pdf文件时,我遇到了意外行为。

如果我有以下情况:

  1. 我在磁盘上有.pdf文件
  2. 我用Edge打开.pdf
  3. 在使用Edge
  4. 关闭.pdf之前,我在此文件上调用os.remove()

    然后发生这种意外行为:

    1. os.remove()的第一次调用毫无例外地完成,
    2. 使用此文件的路径调用os.path.isfile()返回False。
    3. 但文件资源管理器
    4. 显示文件似乎仍保留在磁盘上
    5. os.remove()的后续调用失败:“访问被拒绝”,
    6. 对父目录的os.rmdir()调用失败:“目录不为空”。
    7. 最后当Edge关闭.pdf文件时:

      1. 该文件将从文件系统中删除。
      2. 操作系统是否提供了“延迟删除”行为?

        Edge是否对文件保持非独占锁定?

        这里发生了什么?

0 个答案:

没有答案