文件/目录删除提示

1 投票
3 回答
2137 浏览
提问于 2025-04-15 18:07

在用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,这个参数干扰更小,同时也能防止大部分错误

撰写回答