本文讲述了python实现删除文件与目录的方法。具体实现方法如下:
一、删除文件
os.remove(path)
删除文件 path. 如果path是一个目录, 抛出 OSError错误。如果要删除目录,请使用rmdir().
remove() 同 unlink() 的功能是一样的
my_file = 'foo/bar/baz/test.txt' if os.path.exists(my_file): print "存在" # my_file = 'foo/bar/baz/test.txt' # 删除文件,可使用以下两种方法。 # 删除文件 path. 如果path是一个目录, 抛出 OSError错误。如果要删除目录,请使用rmdir(). os.remove(my_file) # OSError: [Errno 1] Operation not permitted: 'foo/bar/baz' os.unlink(my_file) # OSError: [Errno 1] Operation not permitted: 'foo/bar/baz' else: print 'no such file:%s'%my_file
二、递归删除目录和文件
os.removedirs(path)
递归地删除目录。类似于rmdir(), 如果子目录被成功删除, removedirs() 将会删除父目录;但子目录没有成功删除,将抛出错误。
举个例子, os.removedirs(“foo/bar/baz”) 将首先删除 “foo/bar/ba”目录,然后再删除foo/bar 和 foo, 如果他们是空的话
如果子目录不能成功删除,将 抛出 OSError异常
os.rmdir(path)
删除目录 path,要求path必须是个空目录,否则抛出OSError错误
递归删除目录和文件(类似DOS命令DeleteTree):
复制代码 代码如下:
top='foo/bar/baz' import os for root, dirs, files in os.walk(top, topdown=False): print "root: ", root, " dirs: ", dirs, " files: ",files ''' root: foo/bar/baz/empty/test dirs: [] files: [] root: foo/bar/baz/empty dirs: ['test'] files: [] root: foo/bar/baz dirs: ['empty'] files: ['test_bak.txt', 'test.txt'] ''' continue for name in files: os.remove(os.path.join(root, name)) for name in dirs: os.rmdir(os.path.join(root, name))
或者
print "***************" top='foo/bar/baz/empty/test' # 删除test这个目录及其里面的子目录和文件 import shutil shutil.rmtree(path=top) print "done"参考:https://blog.csdn.net/muwinter/article/details/77196261