python如果要删除一个文件,通常使用
os.remove(filename)
但是这样就直接从磁盘删除了。
有些文件需要删除到回收站
方法如下 :
def del_file(filename):
print('delete file', filename)
# os.remove(filename) #直接删除文件,不经过回收站
if not debug:
res= shell.SHFileOperation((0,shellcon.FO_DELETE,filename,None, shellcon.FOF_SILENT | shellcon.FOF_ALLOWUNDO | shellcon.FOF_NOCONFIRMATION,None,None)) #删除文件到回收站
if not res[1]:
os.system('del '+filename)
这个是从网上复制过来的,调用系统shell来删除文件到回收站,
需要安装
pip install pywin32
重点讲下这个函数 SHFileOperation
1 typedef struct _SHFILEOPSTRUCT {
2 HWND hwnd;//指向发送消息的窗口 0
3 UINT wFunc;//执行的操作 FO_DELETE
4 LPCTSTR pFrom;//源文件名 filename
5 LPCTSTR pTo;//目标文件名 None
6 FILEOP_FLAGS fFlags;//操