如何使用Python一次删除大量文件夹?

我看到很多问题(删除Python中的文件夹内容,如何删除文件或文件夹?,如何删除/删除Python中没有的文件夹?)询问如何删除文件夹(是否为空)但我还没有看到任何关于如何一次删除大量文件夹的问题。

我尝试使用shutils并将其写成shutils.rmtree('.../run*') (我想要删除的所有文件夹都称为run0000,run0001等等),但这不起作用,因为*未被理解。

最后,我最终导入了subprocess.Popen('rm -r ./run*/', shell=True)并使用了subprocess.Popen('rm -r ./run*/', shell=True) ,这是因为shell=True但我想避免这种情况,这是由于安全相关的危害,使用shell=True

一次擦除大量文件夹(非空)的最佳方法是什么? 我认为它必须是适应其中一个相关问题给出的一些答案,但目前为止我还没有做到。 我怎么能这样做?


您可以使用glob模块来查找目录,然后在每个模块上使用shutil.rmtree()

from glob import iglob
import shutil

for path in iglob('.../run*'):
    shutil.rmtree(path)

因为你不需要拥有所有匹配目录的完整列表,所以我使用glob.iglob()匹配的路径。

链接地址: http://www.djcxy.com/p/42433.html

上一篇: How to remove a lot of folders at once using Python?

下一篇: Error on deleting file in a python code