Python 3 で再帰的にフォルダを削除する

PYTHON3 チュートリアル

markdown

Python 3で再帰的にフォルダを削除する方法

Python 3を使用して、ディレクトリとその中のすべてのファイルやサブディレクトリを再帰的に削除する方法について説明します。Pythonには強力な標準ライブラリがあり、ファイル操作を簡単に行うことができます。この記事では、特に注意すべき点や、最新の方法を含むサンプルコードを紹介します。

方法1: osモジュールを使用する

Pythonの標準ライブラリであるosモジュールには、ディレクトリ操作に便利な関数が含まれています。以下のコードは、os.walk()を使用してディレクトリを再帰的に削除する方法を示しています。

import os

def remove_directory_recursive(path):
    for root, dirs, files in os.walk(path, topdown=False):
        for name in files:
            os.remove(os.path.join(root, name))
        for name in dirs:
            os.rmdir(os.path.join(root, name))
    os.rmdir(path)

# 使用例
remove_directory_recursive('/path/to/directory')

このコードは、指定されたディレクトリ内のすべてのファイルとサブディレクトリを削除し、最後にディレクトリ自体を削除します。

方法2: shutilモジュールを使用する

shutilモジュールは、高レベルのファイル操作を提供します。特に、shutil.rmtree()関数はディレクトリを再帰的に削除するための最も簡単な方法です。

import shutil

def remove_directory_with_shutil(path):
    shutil.rmtree(path)

# 使用例
remove_directory_with_shutil('/path/to/directory')

shutil.rmtree()を使用することで、1行でディレクトリとその内容をすべて削除することができます。この方法は簡潔で、ほとんどの場合に推奨されます。

方法3: pathlibモジュールを使用する

Python 3.4以降では、pathlibモジュールが導入され、より直感的なファイルパス操作が可能になりました。以下はpathlibを使用してディレクトリを削除する例です。

from pathlib import Path

def remove_directory_with_pathlib(path):
    path_obj = Path(path)
    for item in path_obj.glob('**/*'):
        if item.is_file():
            item.unlink()
        elif item.is_dir():
            item.rmdir()
    path_obj.rmdir()

# 使用例
remove_directory_with_pathlib('/path/to/directory')

pathlibを使用することで、コードの可読性が向上し、Pythonicな方法でファイルシステムを操作できます。

まとめ

Python 3でディレクトリを再帰的に削除するには、os、shutil、pathlibのいずれかのモジュールを使用する方法があります。それぞれの方法には利点があり、用途に応じて選択することが重要です。特に、shutil.rmtree()は簡潔で信頼性が高く、一般的に推奨される方法です。

Python 3 で再帰的にフォルダを削除するには、os モジュールを使用します。以下は、再帰的にフォルダを削除するためのサンプルコードです。

“`python
import os

def remove_folder(path):
if os.path.exists(path):
for item in os.listdir(path):
item_path = os.path.join(path, item)
if os.path.isdir(item_path):
remove_folder(item_path)
else:
os.remove(item_path)
os.rmdir(path)

# フォルダを削除したいパスを指定
folder_path = ‘削除したいフォルダのパス’
remove_folder(folder_path)
“`

このコードでは、指定されたパスのフォルダを再帰的に削除する関数 `remove_folder` を定義しています。フォルダ内のすべてのファイルとサブフォルダを順番に削除し、最終的に指定されたフォルダ自体も削除します。フォルダが存在しない場合は何も行いません。

この方法を使用すると、Python 3 を使って再帰的にフォルダを効率的に削除することができます。

購読
通知
0 Comments
Inline Feedbacks
View all comments