使用python删除一个文件或文件夹,需要使用os模块。
os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。这时需用用os.rmdir()来删除。
import os, sys
# 列出目录
print "目录为: %s" %os.listdir(os.getcwd())
# 移除
os.remove("aa.txt")
# 移除后列出目录
print "移除后 : %s" %os.listdir(os.getcwd())
执行以上程序输出结果为:
目录为:
[ 'a1.txt','aa.txt','resume.doc' ]
移除后 :
[ 'a1.txt','resume.doc' ]
os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。
os.unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误。 unlink的功能和remove一样是删除一个文件,但是删除一个正在使用的文件会报错。
import os
# path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用rmdir()来删除
os.remove(path)
# path是文件夹路径,注意文件夹需要时空的才能被删除
os.rmdir(path)
# unlink的功能和remove一样是删除一个文件,但是删除一个正在使用的文件会报错。
os.unlink('F:\新建文本文档.txt')
例子:
import os
path = 'F:/新建文本文档.txt' # 文件路径
if os.path.exists(path): # 如果文件存在
# 删除文件,可使用以下两种方法。
os.remove(path)
#os.unlink(path)
else:
print('no such file:%s'%my_file) # 则返回文件不存在
os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。
import os
# 递归地删除目录。如果子目录成功被删除,则将会成功删除父目录,子目录没成功删除,将抛异常。
os.removedirs(path)
递归删除目录和文件的方法:
import os
for root, dirs, files in os.walk(top, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))
另一种方法
import shutil
shutil.rmtree()
如果想把一个文件从一个文件夹移动到另一个文件夹,并同时重命名,用shutil也很简单:
shutil.move('原文件夹/原文件名','目标文件夹/目标文件名')