使用 python 脚本删除 Windows 临时文件

Deleting Windows Temp Files using python script

你能帮我删除Windows/Temp文件下的所有文件吗?? 以下是我的脚本,但它根本不起作用。

import os
import subprocess
recPath = 'C:\Windows\Temp'
ls = []
if os.path.exists(recPath):
    for i in os.listdir(recPath):
        ls.append(os.path.join(recPath, i))
else:
    print 'Please provide valid path!'

paths = ' '.join(ls)
pObj = subprocess.Popen('rmdir C:\Windows\Temp\*.* /s /q *.*'+paths, shell=True, stdout = subprocess.PIPE, stderr= subprocess.PIPE)
rTup = pObj.communicate()
rCod = pObj.returncode
if rCod == 0:
    print 'Success: Cleaned Windows Temp Folder'
else:
    print 'Fail: Unable to Clean Windows Temp Folder'

提前致谢。

使用shutil.

import shutil

shutil.rmtree(r"C:\Windows\Temp")

使用 windows 命令 del 删除带有通配符的目录中的所有文件 .这将递归地删除其中的所有文件,但是它将在那里留下空的子文件夹

import os, subprocess
del_dir = r'c:\windows\temp'
pObj = subprocess.Popen('del /S /Q /F %s\*.*' % del_dir, shell=True, stdout = subprocess.PIPE, stderr= subprocess.PIPE)
rTup = pObj.communicate()
rCod = pObj.returncode
if rCod == 0:
    print 'Success: Cleaned Windows Temp Folder'
else:
    print 'Fail: Unable to Clean Windows Temp Folder'

将第一行更改为以下内容以删除 Windows\Temp 的整个目录树。如果成功,这将删除所有内容,包括 Temp 文件夹本身,之后重新创建父目录

del_dir = r'c:\windows\temp'
pObj = subprocess.Popen('rmdir /S /Q %s' % del_dir, shell=True, stdout = subprocess.PIPE, stderr= subprocess.PIPE)
# recreate the deleted parent dir in case it get deleted
os.makedirs(del_dir)

否则,shutil 的rmtree 应该是一个不错的选择,ignore_errors 设置忽略中间的所有错误并继续直到所有目录树完成

import shutil, os
del_dir = r'c:\windows\temp'
shutil.rmtree(del_dir, ignore_errors=True)
# recreate the deleted parent dir in case it get deleted
os.makedirs(del_dir)

迭代要删除的目录的另一个选项

import os,shutil
del_dir = r'c:\windows\temp'
for f in os.listdir(del_dir):
    if os.path.isfile(f):
        os.remove(f)
    elif os.path.isdir(f)
        shutil.rmtree(f, ignore_errors=True)

将 del_dir 相应地更改为任何感兴趣的目录

你处理的是windows文件夹,小心设置目录删除小心,你才不会误把del_dir = r'c:\windows'

您可能希望对路径进行硬编码。

    import os
    import shutil
    del_dir = r'C:\Windows\Temp'
    for f in os.listdir(del_dir):
        if os.path.isfile(r'C:\Windows\Temp\'+f):
            os.remove(r'C:\Windows\Temp\'+f)
        elif os.path.isdir(r'C:\Windows\Temp\'+f):
            shutil.rmtree(r'C:\Windows\Temp\'+f, ignore_errors=True)