1

在 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 模块,包括标准库中,我想知道这样的东西是否已经存在?

4

3 回答 3

2

这不是 Python 的事情,但如果你继续使用 os.system() 进行删除调用,你可以将-i参数传递给rm. 手册页对此进行了解释:

-i 在每次删除前提示

编辑:我刚刚再次阅读了您的代码,看起来您在整个删除过程之前只提示一次,而不是针对每个文件。您可能对-I标志感兴趣:

-I 在删除三个以上文件之前或递归删除时提示一次。比 -i 侵入性更小,同时仍能防止大多数错误

于 2010-01-17T16:05:29.203 回答
1

要删除目录,请使用 os 模块 os.rmdir()、os.removedirs()。或 shutil.rmtree() 。查看文档以获取更多信息

于 2010-01-17T15:21:55.773 回答
0

好吧,你可以把这个函数保存在一个模块中,然后在其他模块中重复使用,这样你的问题就解决了!

于 2010-01-17T15:53:51.867 回答