Python 3 でフォルダーの内容を削除する方法

PYTHON3 チュートリアル

Python 3でフォルダーの内容を削除する方法

Python 3を使用してフォルダー内のファイルやサブフォルダーを削除する方法を説明します。以下に、関連する知識と具体的な例を示します。

osモジュールを使用したファイル削除

osモジュールを使用すると、ファイルやフォルダーを削除することができます。以下のサンプルコードは、指定したフォルダー内の全てのファイルとサブフォルダーを再帰的に削除する例です。

import os

def delete_folder_contents(folder_path):
    for root, dirs, files in os.walk(folder_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))

# 使用例
delete_folder_contents('/path/to/folder')

上記のコードを実行すると、指定したフォルダー内の全てのファイルとサブフォルダーが削除されます。

shutilモジュールを使用したフォルダー削除

shutilモジュールを使用すると、フォルダーを再帰的に削除することができます。以下のサンプルコードは、指定したフォルダーを再帰的に削除する例です。

import shutil

def delete_folder(folder_path):
    shutil.rmtree(folder_path)

# 使用例
delete_folder('/path/to/folder')

上記のコードを実行すると、指定したフォルダーが再帰的に削除されます。

globモジュールを使用した条件付きファイル削除

globモジュールを使用すると、特定の条件に一致するファイルを削除することができます。以下のサンプルコードは、指定した拡張子に一致するファイルを削除する例です。

import glob
import os

def delete_files_by_extension(folder_path, extension):
    files = glob.glob(os.path.join(folder_path, f'*.{extension}'))
    for file in files:
        os.remove(file)

# 使用例
delete_files_by_extension('/path/to/folder', 'txt')

上記のコードを実行すると、指定したフォルダー内で拡張子が`.txt`に一致するファイルが削除されます。

以上がPython 3を使用してフォルダーの内容を削除する方法に関する説明と具体的な例です。必要に応じて、適切な方法を選択してフォルダーの整理を行ってください。

Python 3 でフォルダーの内容を削除する方法は、os モジュールを使用して行います。以下は、フォルダー内のファイルやサブフォルダーを削除するサンプルコードです。

“`python
import os
import shutil

def delete_folder_contents(folder_path):
for filename in os.listdir(folder_path):
file_path = os.path.join(folder_path, filename)
try:
if os.path.isfile(file_path):
os.unlink(file_path)
elif os.path.isdir(file_path):
shutil.rmtree(file_path)
except Exception as e:
print(f”Failed to delete {file_path}. Reason: {e}”)

# フォルダーのパスを指定して、内容を削除する
folder_path = ‘path/to/folder’
delete_folder_contents(folder_path)
“`

このコードでは、指定したフォルダー内のファイルやサブフォルダーを再帰的に削除します。ファイルは `os.unlink()` 関数を使用し、サブフォルダーは `shutil.rmtree()` 関数を使用して削除します。削除中にエラーが発生した場合は、エラーメッセージが表示されます。

購読
通知
0 Comments
Inline Feedbacks
View all comments