Mus*_*fa 10 python python-2.7 python-3.x
每当我尝试使用它们删除其中的东西时,我会收到此错误消息
import os
os.chdir('/Users/mustafa/Desktop')
os.makedirs('new-file/sub-file')
os.removedirs('new-file')
Run Code Online (Sandbox Code Playgroud)
"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py",第170行,在removedirs中rmdir(名称)OSError:[Errno 66]目录不为空:'new-file'
但是我想我看到人们使用这些命令来删除非空的目录,那么我做错了什么?谢谢
Moi*_*dri 10
您应该使用shutil.rmtree
递归删除目录:
import shutil
shutil.rmtree('/path/to/your/dir/')
Run Code Online (Sandbox Code Playgroud)
回答你的问题:
是
os.removedirs
和os.rmdir
只用于删除空目录?
是的,它们只能用于删除空目录.
以下是官方Python文档中的描述,其中显然有统计数据.
os.rmdir(path, *, dir_fd=None)
删除(删除)目录路径.仅在目录为空时才起作用,否则引发OSError.为了删除整个目录树,可以使用shutil.rmtree().
递归删除目录.工作方式类似
rmdir()
,只是,如果叶目录被成功移除,removedirs()尝试连续地除去,直到引发错误在路径中提到的每个父目录(它被忽略,因为它通常是指一个父目录不为空).例如,os.removedirs('foo/bar/baz')将首先删除目录'foo/bar/baz',然后删除'foo/bar'和'foo'(如果它们为空).如果无法成功删除叶目录,则引发OSError.
归档时间: |
|
查看次数: |
9490 次 |
最近记录: |