如何检查文件夹是否存在然后将其删除?

新手上路,请多包涵

我想从 dataset3 文件夹中删除数据集文件夹。但以下代码不会删除数据集。首先我想检查数据集是否已经存在于数据集中,然后删除数据集。

有人可以指出我在以下代码中的错误吗?

 for files in os.listdir("dataset3"):
    if os.path.exists("dataset"):
        os.system("rm -rf "+"dataset")

原文由 sara 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 527
1 个回答

Python 的 os.rmdir() 仅适用于清空目录,但是 shutil.rmtree() 不在乎(即使有子目录),这使得它与 Linux rm -rf 命令非常相似.

 import os
import shutil

dirpath = os.path.join('dataset3', 'dataset')
if os.path.exists(dirpath) and os.path.isdir(dirpath):
    shutil.rmtree(dirpath)

现代方法

在 Python 3.4+ 中,您可以使用 pathlib 模块做同样的事情,以使代码更加面向对象和可读性:

 from pathlib import Path
import shutil

dirpath = Path('dataset3') / 'dataset'
if dirpath.exists() and dirpath.is_dir():
    shutil.rmtree(dirpath)

原文由 martineau 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题