提示的文件/目录中删除
问题描述:
当在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模块,我想知道这样的事情是否已经存在?
答
删除目录,使用os模块os.rmdir(),os.removedirs()。或shutil.rmtree()。检查文档以获取更多信息
+0
我同意这些可以替换os.system('rm -r'+ dir_name)行,但我正在寻找的是一个例程,会自动给用户提示,仔细检查目录是否应该删除。 – astrofrog 2010-01-17 15:36:15
答
好吧,您可以将此功能保存在模块中并在其他模块中重复使用,这样您的问题就可以解决!
答
它不是Python的东西,但如果您继续使用os.system()进行删除调用,则可以将-i
参数传递给rm
。该手册页解释了它:
-i 编辑前提示每一个去除
:我刚刚看了一遍你的代码,它看起来像你只是整个删除过程之前提示一次,而不是每个文件。你可能会感兴趣的-I
标志来代替:
-I 提示一次删除多个三个文件,或当 递归移除之前。侵扰程度较低 比-i,同时还给予保护 对大多数错误
你或许应该怎么做,如果回答[“Y”,“Y”,“是”]: – 2010-01-17 15:59:25
尽量不要可能的情况下调用系统程序。它不可移植 – ghostdog74 2010-01-18 00:33:55
只需注意在Python 3中,raw_input()被[renamed](https://docs.python.org/3/whatsnew/3.0.html#builtins)输入()。 – Yannis 2016-04-06 14:28:31