临时文件不可删除?

时间:2018-05-25 00:34:03

标签: python file-permissions delete-file

我使用tempfile.mkstemp()创建了临时文件,在创建之后,我在path内获得了文件的唯一路径,现在我想删除临时文件。我的代码如下。

我已经访问了此WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'new.dat' 但未解决我的问题。

代码

import os
import tempfile

path=tempfile.mkstemp('.png', 'bingo',
    'C:\\Users\\MuhammadUsman\\Documents\\PythonScripts\\Project')
os.unlink(path)

错误

PermissionError: [WinError 32] The process cannot access the file
because it is being used by another process:
'C:\\Users\\MuhammadUsman\\Documents\\PythonScripts\\Project\\bingois3q1b3u.png'

2 个答案:

答案 0 :(得分:2)

试试这个:这对我有用。

import os
import tempfile

fd,path=tempfile.mkstemp('.png', 'bingo', 'C:\\Users\\MuhammadUsman\\Documents\\Python Scripts\\Project')
os.close(fd)
os.unlink(path)

答案 1 :(得分:1)

如果您只想获得唯一名称,请尝试此操作。这比上层解决方案更好。无需删除该文件。文件会自动删除。

import os
import tempfile

path=tempfile.NamedTemporaryFile(dir='C:\\Users\\MuhammadUsman\\Documents\\Python Scripts\\Project',suffix='.png').name