📅  最后修改于: 2023-12-03 15:07:46.534000             🧑  作者: Mango
删除文件夹及其子文件夹是 Python 开发中一个常见的需求。本文将介绍在 TypeScript 中如何使用 Python 标准库 shutil 和 os 删除文件夹及其子文件夹。
删除单个文件夹非常简单。
import shutil
shutil.rmtree('/path/to/folder')
只需传入要删除的文件夹路径,shutil.rmtree() 函数会自动删除文件夹及其内部所有文件和文件夹。
删除多个文件夹也非常简单。只需使用 os.path.isdir() 函数检查文件夹是否存在,存在则使用 shutil.rmtree() 函数删除文件夹。
import os
import shutil
folders = ['/path/to/folder1', '/path/to/folder2', '/path/to/folder3']
for folder in folders:
if os.path.isdir(folder):
shutil.rmtree(folder)
如果您只想删除文件夹内的特定类型文件,可以使用 os.listdir() 函数获取文件夹内所有文件和文件夹的名称,并使用 os.path.splitext() 函数检查文件扩展名。
import os
import shutil
folder = '/path/to/folder'
ext = '.txt'
for filename in os.listdir(folder):
if os.path.splitext(filename)[1] == ext:
os.remove(os.path.join(folder, filename))
上述代码将删除所有指定扩展名(.txt)的文件。
您可能需要删除文件夹及其子文件夹,但保留其中某些文件夹和文件。您可以使用 os.path.join() 函数检查要保留的文件夹和文件的路径,如果不匹配则使用 shutil.rmtree() 或 os.remove() 函数删除文件夹和文件。
import os
import shutil
folder = '/path/to/folder'
keep_folders = ['/path/to/keep/folder1', '/path/to/keep/folder2']
keep_files = ['/path/to/keep/file1', '/path/to/keep/file2']
for root, dirs, files in os.walk(folder, topdown=False):
for name in dirs:
if os.path.join(root, name) not in keep_folders:
shutil.rmtree(os.path.join(root, name))
for name in files:
if os.path.join(root, name) not in keep_files:
os.remove(os.path.join(root, name))
上述代码将删除文件夹及其子文件夹,但保留指定的文件夹和文件。
总的来说,在 TypeScript 中删除文件夹及其子文件夹非常简单,并且 Python 提供了广泛的标准库支持,使其变得更加易于使用。