文件/目录删除提示
在用Python编程的时候,我经常需要写一个这样的函数:
def delete_dir(dir_name):
if os.path.exists(dir_name):
reply = raw_input("Delete directory "+dir_name+"? [y/[n]] ")
if reply=='y':
os.system('rm -r '+dir_name)
else:
print "Aborting..."
sys.exit()
这个函数基本上就是一个删除命令,用户会被提示确认一下(我还有一个是用来删除文件的)。因为Python有很多模块,包括标准库里的,我在想是不是已经有类似的功能可以直接使用了?
3 个回答
0
嗯,你可以把这个功能保存到一个模块里,然后在其他模块中重复使用。这样一来,你的问题就解决了!
1
要删除一个文件夹,可以使用os模块里的os.rmdir()或os.removedirs()。另外,也可以用shutil.rmtree()。想了解更多信息,可以查看相关文档。
2
这不是Python特有的功能,但如果你一直使用os.system()来执行删除操作,可以在调用rm
时加上-i
这个参数。手册上是这么解释的:
-i 在每次删除之前询问确认
补充一下:我刚刚又看了一遍你的代码,发现你似乎只是在整个删除过程中询问一次,而不是对每个文件都询问。你可能会对-I
这个参数更感兴趣:
-I 在删除超过三个文件或者递归删除时询问一次。比起-i,这个参数干扰更小,同时也能防止大部分错误