如何使用python删除文件夹中的所有文件夹?

时间:2018-09-25 05:48:02

标签: python

是否可以在不使用特定路径的情况下删除文件夹中的所有文件夹?,在这里我先移动文件的内容,然后再删除它是否是目录

2018-08-25

3 个答案:

答案 0 :(得分:5)

是的,请使用shutil的rmtree方法。

import shutil 
shutil.rmtree('directory') # the directory you want to remove
os.listdir()

您也可以使用os.rmdir,但是如果其中包含任何内容,则无法使用。

如果要检查特定路径是否为目录,则可以使用os.path.isdir,如果返回rmtree,则运行TRUE

如果您想保持 root 文件夹不变,则可以walk该目录并在每个项目上调用rmtree

答案 1 :(得分:1)

@Vineeth Sai之前的建议,如果要删除目录中的所有子目录,只需使用os.listdir()遍历每个文件,如果文件是目录,则应用shutil.rmtree()

from os import listdir

from os.path import abspath
from os.path import isdir
from os.path import join

from shutil import rmtree

path = 'YOUR PATH HERE'

for file in listdir(path):
    full_path = join(abspath(path), file)

    if isdir(full_path):
        rmtree(full_path)

以上内容还使用os.isdir()检查文件是否为目录。

答案 2 :(得分:1)

如果Vineeth's的答案不适合您的情况,您可以subprocess模块运行os的特定命令,如下所示

import subprocess
subprocess.call('rm -rf /path/of/the/dirctory/*', shell=True)

上面的命令是linux特有的,您可以使用与上面同一命令相对应的Windows。

注意-这里shell=True*扩展为文件/文件夹。

此外,请注意,Vineeth's的答案是os独立的,并且上面的答案是os特定的。 谨慎

P.S。 -您也可以使用powershell模块运行subprocess命令。