鱼C论坛

 找回密码
 立即注册
查看: 2722|回复: 21

[已解决]请问这个为啥没有报异常。。

[复制链接]
发表于 2021-6-24 17:01:42 | 显示全部楼层 |阅读模式
5鱼币
os.removedirs('D:\\python3\\--\\-')
最佳答案
2021-6-24 17:01:43
本帖最后由 nahongyan1997 于 2021-6-24 20:54 编辑
杨东明 发表于 2021-6-24 20:41
python3不空删了的话也不对,不是说的报错吗


不是没出现 error,是error被python无视了,如果你想捕捉还是有办法捕捉到的,同样的error 还有 迭代器,迭代器在最后一个元素被 for 循环索引后也会出现一个 error ,这个error是用来告诉
for 循环已经没有元素可以叠戴的信号,所以不会报错,

os.removedirs 的 error 与迭代器同理,他只是一个信号,而不会引发错误,目录不存在的错误,和这个error并不是同一个。。。。 (其实小甲鱼老师的课里是有教的!)

最佳答案

查看完整内容

不是没出现 error,是error被python无视了,如果你想捕捉还是有办法捕捉到的,同样的error 还有 迭代器,迭代器在最后一个元素被 for 循环索引后也会出现一个 error ,这个error是用来告诉 for 循环已经没有元素可以叠戴的信号,所以不会报错, os.removedirs 的 error 与迭代器同理,他只是一个信号,而不会引发错误,目录不存在的错误,和这个error并不是同一个。。。。 (其实小甲鱼老师的课里是有教的!)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 17:01:43 | 显示全部楼层    本楼为最佳答案   
本帖最后由 nahongyan1997 于 2021-6-24 20:54 编辑
杨东明 发表于 2021-6-24 20:41
python3不空删了的话也不对,不是说的报错吗


不是没出现 error,是error被python无视了,如果你想捕捉还是有办法捕捉到的,同样的error 还有 迭代器,迭代器在最后一个元素被 for 循环索引后也会出现一个 error ,这个error是用来告诉
for 循环已经没有元素可以叠戴的信号,所以不会报错,

os.removedirs 的 error 与迭代器同理,他只是一个信号,而不会引发错误,目录不存在的错误,和这个error并不是同一个。。。。 (其实小甲鱼老师的课里是有教的!)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 17:03:34 | 显示全部楼层
removedirs(path)
递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常


python3里面不是空的不应该报异常吗?-- 和- 是我建的两个空文件夹,为啥运行后删除了-- 和 -没报错,父文件夹不应该是python3吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 17:04:21 | 显示全部楼层
你电脑里还是有这个文件夹呗,要是没有不可能不报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 17:31:04 From FishC Mobile | 显示全部楼层
重点是"从子目录到父目录逐层尝试"
先删-
再删--
最后删python3
所以它尝试删除的时候每个目录里都是空的,除非-目录里还有东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 17:58:51 | 显示全部楼层
因为他是从里往外删除
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:27:04 | 显示全部楼层
hrpzcf 发表于 2021-6-24 17:31
重点是"从子目录到父目录逐层尝试"
先删-
再删--

python3是python文件的安装目录,一堆东西,最后运行python3没删也没报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:29:56 | 显示全部楼层
nahongyan1997 发表于 2021-6-24 17:58
因为他是从里往外删除

从里往外删,为啥删到python3不报错了。。?不是说的非空会报错吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:30:50 | 显示全部楼层
hrpzcf 发表于 2021-6-24 17:31
重点是"从子目录到父目录逐层尝试"
先删-
再删--

import os
>>> os.makedirs('D:\\python3\\--\\-')
>>> os.removedirs('D:\\python3\\--\\-')

我又试了试,一下还是不报错,python3也不删
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 20:34:39 | 显示全部楼层
杨东明 发表于 2021-6-24 20:29
从里往外删,为啥删到python3不报错了。。?不是说的非空会报错吗

我这里怎么把python3给删了呢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:40:39 | 显示全部楼层
nahongyan1997 发表于 2021-6-24 20:34
我这里怎么把python3给删了呢。

python3你建的空的话会删,我的是python的安装目录,里面一堆东西。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:41:32 | 显示全部楼层
nahongyan1997 发表于 2021-6-24 20:34
我这里怎么把python3给删了呢。

python3不空删了的话也不对,不是说的报错吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:42:53 | 显示全部楼层
nahongyan1997 发表于 2021-6-24 20:34
我这里怎么把python3给删了呢。

>>>os.listdir('D:\\python3')
>>>['1', 'DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'python3.dll', 'python37.dll', 'pythonw.exe', 'Scripts', 'tcl', 'Tools', 'vcruntime140.dll']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:49:30 | 显示全部楼层
nahongyan1997 发表于 2021-6-24 20:43
python3里面的文件夹已经被删光了 python3 怎么就不是空的了呢,你别忘了os.removedirs 是递归删除不是 ...

你的python3是空的,所以删完了也是对的,我是说我的python3里面一堆东西,就是假设你的python3也有东西,你的删掉了也不符合removedirs的说法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:51:02 | 显示全部楼层
nahongyan1997 发表于 2021-6-24 20:43
python3里面的文件夹已经被删光了 python3 怎么就不是空的了呢,你别忘了os.removedirs 是递归删除不是 ...


>>> os.makedirs('D:\\新建文件夹\\新建文件夹\\新建文件夹\\新建文件夹')
>>> os.removedirs('D:\\新建文件夹\\新建文件夹\\新建文件夹\\新建文件夹')

这全是空文件夹,运行完所有新建文件夹一个都没有了,也就是删到底了,照理来说python3也在删除范围内,但是里面不是空的(我的),也应该报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 20:53:05 | 显示全部楼层
杨东明 发表于 2021-6-24 20:51
>>> os.makedirs('D:\\新建文件夹\\新建文件夹\\新建文件夹\\新建文件夹')
>>> os.removedirs('D:\\新 ...

再看一遍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:54:38 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 20:55:39 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 20:55:40 | 显示全部楼层

难道我说的还不够清楚吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 20:57:20 | 显示全部楼层

就是说这个error就算出现了也不会引发异常,除非你手动捕获,  Are you OK?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 06:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表