2013-03-27 207 views
0

在Python中,我明白,我可以使用下面的命令如删除具有相同名称的多个文件:删除多个目录中的蟒蛇

for f in glob.glob("file_name_*.txt"): 
    os.remove(f) 

以及单个目录可以shutil.rmtree('/path/to/dir')被删除 - 这即使目录不为空,该命令也会删除该目录。另一方面,os.rmdir()需要该目录为空。

我实际上想删除多个具有相同名称的目录,而且它们不是空的。所以,我正在寻找像 shutil.rmtree('directory_*')

有没有办法用python做到这一点?

回答

0

你所有的作品:​​3210迭代,并rmtree()删除:

for path in glob.glob("directory_*"): 
    shutil.rmtree(path) 

,这将抛出OSError如果一个文件的匹配替换的路径名中的一个,或任何其他理由,rmtree()可能会失败。一旦您决定如何处理错误,您可以根据需要添加错误处理。除非你知道你想对错误做什么,否则添加错误处理是没有意义的,所以我已经把错误处理留下了。

+0

有人可以解释这不能回答这个问题吗? – 2013-03-27 06:52:35

+1

实际上并未检查它是否是目录。考虑包括'如果os.path.isdir'或其他.. – wim 2013-03-27 06:53:05

+0

@wim:这是评论或编辑的理由,而不是downvote。使用该系统。 – 2013-03-27 06:54:18