Pythonでファイル・ディレクトリを削除する
Pythonでファイル・ディレクトリを削除する 日付形式のディレクトリを管理していると古いデータを定期的に整理する必要が出てきます。特に画像ファイルなどの日々大量に生成されるデータを扱うシステムでは、ストレージの圧迫を防 […]
Filter by Category
Pythonでファイル・ディレクトリを削除する 日付形式のディレクトリを管理していると古いデータを定期的に整理する必要が出てきます。特に画像ファイルなどの日々大量に生成されるデータを扱うシステムでは、ストレージの圧迫を防 […]
Pythonのコマンドラインで特定の関数のみを指定して実行する AWS Lambdaではプログラム実行時に関数を指定しますが、pythonコマンドは通常、ファイル単位で指定するのでそのままでは実行できません。そのためロー […]
PythonとGhostscriptでPDFを軽量化 書類の添付などでブラウザからPDFをアップロードする際に数MB以下にしないとアップロードできないことがありますが、印刷用に作成したPDFや複数画像を一枚にまとめたPD […]
AWS LambdaとS3、SNSでファイルのアップロードを自動通知 AWS Lambdaは特定の条件を満たすときにサーバーレスでPython(他のプログラミング言語も)を実行できるサービスです。トリガーを検知したときや […]
PythonとMoviePyで動画ファイルの指定時間ごとの分割を自動化 OpenCVなどで動画の処理を行う際に、1分毎の変化や10分毎に結果を見たいときに一連の動画から指定した時間毎に分割して切り出したいことがあります。 […]
OpenCVで動画ファイルの最終フレームを取得 PythonとOpenCVを使用して動画ファイルの最大フレーム数を取得する方法を解説をします。処理の確認用に取得した最大フレーム数とファイル名をソートして表示させます。 コ […]
GitHub CopilotをPyCharmで使用するまでの手順 GitHub Copilotは、プログラミングの効率を飛躍的に向上させるツールで、開発者にとって非常に便利なコーディングのサポートを提供します。本記事では […]
PyCharm 2023.2から追加されたBlackによるコード成形 Pythonのコード成形で人気のBlackがPyCharm 2023.2から環境設定画面で設定可能になりました。従来はpipなどでインストールしていま […]
Twitter APIの変更に関して 最近、Twitter APIのバージョンがアップデートされ、v1が廃止されました。これに伴い、開発者はv2への移行が必要となります。 Twitter v1の廃止 Twitter v1 […]
PyCharmで.envから環境変数を読み込む 環境変数を.envに書いて読み込ませる理由 Pythonの開発では、セキュリティや環境毎の設定、柔軟性などの理由から.envファイルに環境変数を書いて読み込ませる方法が推奨 […]
AWS Cloud9にPython3.9をインストール AWSのCloud9(Ubuntu)にはデフォルトでPython 3.6.9がインストールされています。 openaiに必要なpandasのインストール opena […]
AWSのCloud9を使ってPythonのプログラミング研修を開催 2022年11月から2023年2月までの期間で、群馬県庁職員を対象にしたDXを促進するためのPythonによるプログラミング研修を開催しました。現在、群 […]
AttributeError: module ‘numpy’ has no attribute ‘float’ numpyを使ったライブラリをコマンド実行した際に以下のエラ […]
PythonからDeepLのAPIを使って翻訳 最先端のAI技術を使った世界最高レベルの機械翻訳のDeepLをAPIで操作します。deeplのライブラリを使うとPythonで書く通常のPOSTのコードよりも記述量を少なく […]
rembgで背景を削除した画像を編集して元の画像と再合成 YouTubeにアップロードしたrembgで背景を削除する説明動画にコメントをいただいたので、rembgを使った画像処理の続編です。rembgで背景を削除した画像 […]
Rembgで画像から背景を削除 先日、SNSで見た画像の背景を削除して切り抜くPythonのライブラリを見つけたので早速試してみました。普段業務で画像の背景を処理することも多くソフトを使って背景を削除していたので、Pyt […]
MacにGoProをウェブカメラとして認識させてOpenCVで使う MacとGoProを繋ぎ、GoProをウェブカメラとして認識させてOpenCVに映像を入力します。今回は映像を取り込んで画面に表示するだけですが、Pyt […]
Raspberry PiにInsightFaceをインストールできなかった 顔検出や顔認証、属性判定ができるInsightFaceというライブラリを使ってRaspberry Piで属性判定に挑戦しましたが、結果的にRas […]
WindowsでPythonの仮想環境を構築 Pythonで開発するときはMac版のPyCharmを使用しているので仮想環境も自動でPyCharmが構築してくれるのですが、Apple SiliconのMacでは動かないラ […]
iPhoneで撮影した写真をPythonでpngに変換 iPhoneで撮影した写真はHEICという拡張子で保存されます。この画像を利用したり編集したりするにはpngなどの形式に変換が必要なので画像が大量にある場合は1枚1 […]
日付形式のディレクトリを管理していると古いデータを定期的に整理する必要が出てきます。特に画像ファイルなどの日々大量に生成されるデータを扱うシステムでは、ストレージの圧迫を防ぐため過去のデータを自動的に削除する仕組みが重要です。
Pythonを使って日付別のディレクトリを判別し、特定の日付より古いディレクトリを安全に削除する方法を解説します。
PC: MacBook Pro (14, 2021)
OS: macOS Monterey 12.6.7
Python: 3.11.6
import datetime
import os
import shutil
base_directory = "images"
current_date = datetime.datetime.now()
today_date_int = int(current_date.strftime("%Y%m%d"))
if not os.path.exists(base_directory):
print(f"指定されたディレクトリ '{base_directory}' が存在しません。")
else:
for dir_name in os.listdir(base_directory):
if dir_name.isdigit() and len(dir_name) == 8 and int(dir_name) < today_date_int:
dir_path = os.path.join(base_directory, dir_name)
try:
shutil.rmtree(dir_path)
print(f"削除しました: {dir_path}")
except Exception as e:
print(f"削除に失敗しました: {dir_path} - エラー: {e}")
import datetime
import os
import shutil
ライブラリのインポート
base_directory = "images"
削除対象のディレクトリを指定
current_date = datetime.datetime.now()
today_date_int = int(current_date.strftime("%Y%m%d"))
現在の日付の取得と取得した値を整数フォーマットに変換
if not os.path.exists(base_directory):
print(f"指定されたディレクトリ '{base_directory}' が存在しません。")
指定したディレクトリが存在するかを確認
else:
for dir_name in os.listdir(base_directory):
指定したディレクトリ内のサブディレクトリやファイルの名前を取得
if dir_name.isdigit() and len(dir_name) == 8 and int(dir_name) < today_date_int:
dir_name.isdigit()
数字のみで構成されているか確認
len(dir_name) == 8
文字列の長さが8文字であることを確認
int(dir_name) < today_date_int
dir_name
を整数に変換して今日の日付よりも前であるかを確認
dir_path = os.path.join(base_directory, dir_name)
try:
shutil.rmtree(dir_path)
print(f"削除しました: {dir_path}")
except Exception as e:
print(f"削除に失敗しました: {dir_path} - エラー: {e}")
os.path.join(base_directory, dir_name)
base_directory
と dir_name
を結合して削除対象のディレクトリのパスを生成
shutil.rmtree(dir_path)
指定したディレクトリ dir_path
を削除します。
try-except
削除に失敗した場合にはエラーメッセージを表示、削除に成功した場合には削除完了のメッセージを表示
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません