2017-01-25 47 views
0

我正在寻找写一段python代码,删除所有文件夹及其内容,但不删除单个文件。
例如,下面是包含在目录(文件夹B)中的一些文件和文件夹以及执行删除的脚本文件。如何删除folderA,folderB,folderC等,但保留文件?由于Python删除所有文件夹,但不是文件

/Folder B 
    file.docx 
    fileB.docx 
    fileC.docx 
    pythonDeleteScript.py 
    folderA/ 
    folderB/ 
    folderC/ 
    folderD/ 
+1

你看过'shutil'和'os'模块吗?你可以使用后者来扫描一个目录(并且过滤器只保留目录条目),前者可以删除文件夹树。 SO并不是真正的代码编写服务,因为你标记了这个'shutil',你清楚地知道这个模块。看看'os' /'os.path'并尝试解决你自己。 – ShadowRanger

+0

[os.path.isdir](https://docs.python.org/3/library/os.path.html#os.path.isdir)+ [os.listdir](https://docs.python。 org/3/library/os.html#os.listdir)+ [os.rmdir](https://docs.python.org/3/library/os.html#os.rmdir) – Copperfield

+0

@Copperfield:你会希望['shutil.rmtree'](https://docs.python.org/3/library/shutil.html#shutil.rmtree)只需在文件夹非空时执行此操作。如果你使用的是现代Python,可以简化为['os.scandir'](https://docs.python.org/3/library/os.html#os.scandir)(它涵盖了' os.listdir'和'os.path.isdir',但更有效)+'shutil.rmtree'。 – ShadowRanger

回答

3

使用os.listdir()拿到目录,os.path.isdir(path)的内容,看它是否是一个文件夹,如果是,shutil.rmtree(path)删除该文件夹及其所有的内容。

相关问题