如何删除文件夹中的内容?

821 投票
28 回答
1019936 浏览
提问于 2025-04-11 09:25

我该如何在Python中删除本地文件夹里的内容呢?

现在这个项目是针对Windows系统的,但我也想看看在*nix系统上怎么做。

28 个回答

368

你可以使用 shutil.rmtree 来删除一个文件夹及其里面的所有内容:

import shutil
shutil.rmtree('/path/to/folder')
shutil.rmtree(path, ignore_errors=False, onerror=None)


这个命令可以删除整个文件夹及其所有子文件夹和文件;path 需要指向一个文件夹(而不是指向文件夹的快捷方式)。如果 ignore_errors 设置为真,删除失败时的错误会被忽略;如果设置为假或者不写,错误会通过 onerror 指定的处理方式来处理,如果没有指定处理方式,就会抛出一个异常。

495

你可以这样做:

import os
import glob

files = glob.glob('/YOUR/PATH/*')
for f in files:
    os.remove(f)

当然,你也可以在路径中使用其他过滤器,比如:/YOUR/PATH/*.txt,这样可以删除目录下所有的文本文件。

697
import os, shutil
folder = '/path/to/folder'
for filename in os.listdir(folder):
    file_path = os.path.join(folder, filename)
    try:
        if os.path.isfile(file_path) or os.path.islink(file_path):
            os.unlink(file_path)
        elif os.path.isdir(file_path):
            shutil.rmtree(file_path)
    except Exception as e:
        print('Failed to delete %s. Reason: %s' % (file_path, e))

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答