标记文件从Python中删除?

时间:2010-10-18 23:55:50

标签: python file

在我的一个脚本中,我需要删除当时可能正在使用的文件。我知道我不能删除正在使用的文件,直到它不再存在,但我也知道我可以将文件标记为由操作系统(Windows XP)删除。我将如何在Python中执行此操作?

3 个答案:

答案 0 :(得分:6)

...和另一个不依赖于pywin32二进制文件的版本。

import ctypes
MOVEFILE_DELAY_UNTIL_REBOOT = 4

ctypes.windll.kernel32.MoveFileExA("/path/to/lockedfile.ext", None,
                                       MOVEFILE_DELAY_UNTIL_REBOOT)

答案 1 :(得分:4)

import win32file
import win32api
win32file.MoveFileEx("/path/to/lockedfile.ext", None ,
                 win32file.MOVEFILE_DELAY_UNTIL_REBOOT)

答案 2 :(得分:1)

使用MoveFileEx功能:

  

如果dwFlags指定MOVEFILE_DELAY_UNTIL_REBOOT且 lpNewFileName 为NULL,则MoveFileEx会在系统重新启动时注册要删除的 lpExistingFileName 文件。如果 lpExistingFileName 引用目录,则仅当目录为空时,系统才会在重新启动时删除目录。