首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >递归删除python中的文件夹

递归删除python中的文件夹
EN

Stack Overflow用户
提问于 2012-10-29 16:20:09
回答 8查看 214.9K关注 0票数 271

我在删除空目录时遇到问题。下面是我的代码:

代码语言:javascript
复制
for dirpath, dirnames, filenames in os.walk(dir_to_search):
    //other codes

    try:
        os.rmdir(dirpath)
    except OSError as ex:
        print(ex)

参数dir_to_search是我传递需要完成工作的目录的位置。该目录如下所示:

代码语言:javascript
复制
test/20/...
test/22/...
test/25/...
test/26/...

请注意,以上所有文件夹都是空的。当我运行这个脚本时,文件夹2025都被删除了!但是文件夹2526不会被删除,即使它们是空文件夹。

编辑:

我得到的例外是:

代码语言:javascript
复制
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/29'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/29/tmp'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/28'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/28/tmp'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/26'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/25'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/27'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/27/tmp'

我在哪里犯了错?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-10-29 16:27:58

试试shutil.rmtree

代码语言:javascript
复制
import shutil
shutil.rmtree('/path/to/your/dir/')
票数 538
EN

Stack Overflow用户

发布于 2012-10-29 16:28:13

os.walk()的默认行为是从根到叶遍历。将os.walk()中的topdown=False设置为从叶遍历到根。

票数 33
EN

Stack Overflow用户

发布于 2018-04-12 02:26:09

下面是我的纯pathlib递归目录解链器:

代码语言:javascript
复制
from pathlib import Path

def rmdir(directory):
    directory = Path(directory)
    for item in directory.iterdir():
        if item.is_dir():
            rmdir(item)
        else:
            item.unlink()
    directory.rmdir()

rmdir(Path("dir/"))
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13118029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档