你能帮帮我怎样才能删除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'
提前谢谢。
答案 0 :(得分:3)
使用windows命令del删除带有通配符的dir中的所有文件 。这将在其中递归删除所有文件,但它会将空子文件夹保留在那里
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'
将第1行更改为以下以删除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'
答案 1 :(得分:0)
使用shutil。
import shutil
shutil.rmtree(r"C:\Windows\Temp")
答案 2 :(得分:0)
您可能希望对路径进行硬编码。
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)