【Python】特定のディレクトリの2階層下にあるディレクトリ”だけ”を削除するスクリプト

スポンサーリンク
Python
スポンサーリンク

自分以外に需要があるかどうかもわかりませんが、Pythonで特定のディレクトリの2階層下にあるディレクトリ”だけ”を削除するスクリプトを作成しました。

スポンサーリンク

やりたいこと

こんなディレクトリツリーがあった場合、
root/
├ dir1-1/
├ dir1-2/
│ ├ dir2/
│ │ └ file3
│ └ file2
└ file1

dir2とfile3を削除して、以下のようなディレクトリツリーにしたいんです。
root/
├ dir1-1/
├ dir1-2/
│ └ file2
└ file1

ディレクトリの数が数百は会ったので、チマチマ手作業でやるのが面倒と思いスクリプトを作成しました。ちょうどこの本を読んだばかりでしたし。

どんな用途で使ったかはご想像にお任せします。

作ったスクリプト

#! python3
import glob,shutil

for name in glob.glob('./*/*/'):
    shutil.rmtree(name)

注意点

このスクリプトは’/*/*/’となっている所を、”*/”の数を減らしたり増やしたりすれば任意の階層のディレクトリを削除することができます。ただし、誤って指定してしまうと問答無用で削除されてしまうので事前にしっかりと確認してから使ってください。

コメント