2017-01-25 7 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: вы бы want ['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) удалить папку и все ее содержимое.

 Смежные вопросы

  • Нет связанных вопросов^_^