脚本删除C:\Windows\CSC\v2.0.6\namesp

2024-06-09 10:19:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个Python脚本来删除C:\Windows\CSC\v2.0.6\namespace下的所有内容 我需要个主意。。要在命令行中执行此操作,我必须先转到cmd,然后是psexec -s cmd,然后转到C:\Windows\CSC\v2.0.6\namespace,然后是rd*what ever folder。。我想创建一个脚本来删除所有。。有什么帮助吗


Tags: 命令行脚本cmd内容windowsrdfoldernamespace
2条回答

一个simple Google search和一些修改:

import os
mainPath = "C:\Windows\CSC\v2.0.6\namespace"
files = os.listdir(mainPath)
for f in files:
    os.remove('{}/{}'.format(mainPath, f))

如果您想递归地找到所有文件,然后将其全部删除(这是我昨天写的一个小脚本):

^{pr2}$

所以你可以:

files = getAllFiles(mainPath)
for f in files:
    os.remove(f)

注意:如果有太多的子文件夹(它会创建很多递归节点),递归算法会变得有些慢(并且可能会引发一个MemoryError)。在

要避免这种情况,可以将递归函数用作辅助函数,该函数由主迭代函数调用:

def getDirs(path):
    sub = os.listdir(path)
    paths = []
    for p in sub:
        pDir = '{}\{}'.format(path, p)
        if os.path.isdir(pDir):
            paths.extend(getAllFiles(pDir, paths)) # getAllFiles is the same as above
        else:
            paths.append(pDir)
    return paths

但是,对于非常大的子文件夹,它会变得很慢。对我来说,浏览C:\Python27\Lib大约需要6-7秒(它有大约5k+个文件,还有很多很多子文件夹)。在

此代码应删除目录中的所有文件或目录:

import os, shutil
folder = "C:\Windows\CSC\v2.0.6\namespace"
for item in os.listdir(folder):
    path = os.path.join(folder, item)
    try:
        os.unlink(path) # delete if the item is a file
    except Exception as e:
        shutil.rmtree(path) # delete if the item is a folder

这是answered previously。在

相关问题 更多 >