歌者文明清理员 发表于 2023-4-26 18:14:19

os 清除整个文件夹

如题,怎么删除一个有东西文件夹,只能一个一个遍历删除吗

isdkz 发表于 2023-4-26 18:16:32

在Python中,要删除一个包含文件和子文件夹的文件夹,您可以使用`os`和`shutil`库。以下是一个例子:

import os
import shutil

def remove_folder(folder_path):
    try:
      # 递归删除文件夹及其内容
      shutil.rmtree(folder_path)
      print(f"{folder_path} 文件夹已被成功删除。")
    except Exception as e:
      print(f"删除文件夹时发生错误: {e}")

folder_path = "example_folder"# 将这里的 "example_folder" 替换为您要删除的文件夹路径
remove_folder(folder_path)


这个示例中的`remove_folder`函数接受一个参数`folder_path`,指定要删除的文件夹路径。`shutil.rmtree()`函数用于递归删除文件夹及其内容。

请注意,在执行此代码之前确保已指定正确的文件夹路径,以免删除重要文件。

liuhongrun2022 发表于 2023-4-26 18:21:22

本帖最后由 liuhongrun2022 于 2023-4-26 18:22 编辑

os只能删空文件夹
用别的库吧
import shutil
shutil.rmtree('你的目录')
求最佳答案{:10_254:}

liuhongrun2022 发表于 2023-4-26 18:26:41

如果非要os库的话递归也行
import os

def remove_dir(path):
    if os.path.isdir(path):
      for file_name in os.listdir(path):
            sub_path = os.path.join(path, file_name)
            remove_dir(sub_path)
      os.rmdir(path)
    else:
      os.remove(path)

remove_dir('文件夹路径')

歌者文明清理员 发表于 2023-4-26 19:51:36

isdkz 发表于 2023-4-26 18:16
在Python中,要删除一个包含文件和子文件夹的文件夹,您可以使用`os`和`shutil`库。以下是一个例子:




isdkz,专业将简单的问题复杂化
跟os有关系吗

isdkz 发表于 2023-4-26 20:18:33

歌者文明清理员 发表于 2023-4-26 19:51
isdkz,专业将简单的问题复杂化
跟os有关系吗

os应该不用递归做不到{:10_256:}

歌者文明清理员 发表于 2023-4-26 20:21:01

isdkz 发表于 2023-4-26 20:18
os应该不用递归做不到

毫无意义的importos

isdkz 发表于 2023-4-26 20:22:23

歌者文明清理员 发表于 2023-4-26 20:21
毫无意义的importos

才发现{:10_277:}
页: [1]
查看完整版本: os 清除整个文件夹