2017-01-25 84 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)刪除該文件夾及其所有的內容。

相關問題