首页 > 解决方案 > 如何清空目录而不对其进行迭代?

问题描述

让我们考虑一下我有一个非空文件夹路径:

dir = r'D:\ZIP_Or_Installations';

我想清空这个文件夹,但不迭代其中的内容(因为我在这里寻求性能最佳解决方案)。

我似乎找不到合适的功能。我试过使用shutil.rmtree(),但使用这个函数必须严格指向一个非空目录,这意味着它将根除我不想要的整个目录。

任何帮助,将不胜感激。感谢您花时间研究这篇文章。

标签: pythonfilefile-handling

解决方案


对于 Ubuntu

这将删除目录及其内容:

值得一提的警告:使用 -rf 运行很危险。如果路径有错误...可能最终会删除重要文件。

因此,请确保您提供了正确的目录。

import os
path = 'folder/to/clean'
os.system('rm -rf %s/*' % path)

如果要保留文件夹本身,可以添加以在同一目录中再次创建文件夹:

os.mkdir('path/to/folder')

对于 Windows

您可以使用此删除文件夹及其内容(PS D:/test 是一个目录示例):

import os
os.system('rd /s /q "D:/test"')

然后您可以使用以下命令创建目录:

os.mkdir("D:/test")

所以你的代码应该是这样的:

import os
os.system('rd /s /q "D:/test"')
os.mkdir("D:/test")

推荐阅读