Python 業務自動化 | ファイル操作自動化:更新日時でファイルを検索する

Python Python
スポンサーリンク
スポンサーリンク
  1. Python自動化の基礎として、更新日時でファイルを検索する意味を理解する
  2. まず理解したい、更新日時でファイルを検索するとは何か
    1. 時間条件に合うファイルだけを見つけることです
    2. 検索は候補を見つけることが目的であり、すぐ削除や移動をするとは限りません
  3. なぜ更新日時でファイルを検索するのか
    1. 最近のファイルだけを効率よく扱えるからです
    2. 古いファイルを整理しやすくなるからです
    3. 定期処理の条件を作りやすくなるからです
  4. 更新日時の基本的な考え方を理解する
    1. 更新日時は「最後に内容が変わった時刻」と考えると分かりやすいです
    2. 人間は日付で考えますが、プログラムは数値で比べることが多いです
  5. Pythonで更新日時を取得する基本
    1. os.path.getmtime() を使うのが基本です
    2. そのままだと分かりにくいので、日時表示へ変換することもあります
  6. 最初に覚えたい、更新日時検索の流れ
    1. まず対象ファイルを決める
    2. 次に、更新日時を取得する
    3. 最後に、条件と比べて判定する
  7. 例題1 1つのファイルの更新日時を確認する
    1. 最初に作るべき基本例です
  8. 例題2 過去7日以内に更新されたファイルか判定する
    1. 現在時刻との差を使う考え方が重要です
  9. 例題3 指定日付より前に更新されたファイルを検索する
    1. 具体的な日付を基準にする方法も重要です
  10. 例題4 フォルダ内のファイル一覧と組み合わせて検索する
    1. 実際の自動化ではこの形がよく使われます
  11. 更新日時検索で特に注意したい重要ポイント
    1. 条件の向きを取り違えないことが最重要です
    2. 「以前」「以後」「以内」「未満」の違いを意識する必要があります
    3. ファイルだけを対象にする意識が大切です
  12. 更新日時を見やすく表示する工夫も役立ちます
    1. 検索結果に日時も一緒に出すと確認しやすくなります
  13. 初心者向けの実用テンプレート
  14. 初心者がよくつまずくポイント
    1. 新しいファイルを探しているのか、古いファイルを探しているのか途中で分からなくなる
    2. 日数条件を秒へ直す考え方で混乱する
    3. 検索結果をすぐ削除や移動へつなげてしまう
  15. セキュリティと安全性の観点からの注意
    1. 外部から受け取ったパスや日時条件をそのまま信用しないことが重要です
    2. 更新日時だけでファイルの重要性を判断しないことも大切です
  16. 学習を進めるときのおすすめの順番
  17. まとめ

Python自動化の基礎として、更新日時でファイルを検索する意味を理解する

Pythonでファイル操作自動化を学び始めると、ファイル一覧の取得、特定拡張子の絞り込み、サイズ条件での検索、古いファイルの削除といった処理を少しずつ身につけていきます。その流れの中で、実務でもとても役立つのが「更新日時でファイルを検索する」という考え方です。

初心者の方は、ファイルを見るときに名前や拡張子、サイズに注目しやすいです。しかし実際の運用では、「いつ更新されたファイルなのか」がとても重要になる場面が多くあります。たとえば、今日更新されたファイルだけを確認したい、過去7日以内のファイルだけを処理したい、一定日付より前の古いファイルを探したい、といったケースです。

そこでPythonに「この日時以降のファイルだけ探す」「この日時以前のファイルだけ探す」といったルールを与えると、必要なファイルだけを時間条件で効率よく絞り込めるようになります。これは単なる便利機能ではありません。新しい処理結果の確認、古いデータの整理、運用の見える化、定期処理の自動化につながる重要な基礎です。

ただし、ここで大切なのは、「更新日時」という言葉を感覚で扱わないことです。自動化では、「何日以内なのか」「どの日付より前なのか」「その日を含むのか含まないのか」を具体的に決める必要があります。また、更新日時はファイルの中身が最後に変更された時刻として扱われることが多いため、その意味も理解したうえで使うことが大切です。

この記事では、Python自動化の中でもファイル操作自動化の基礎として、「更新日時でファイルを検索する」方法をプログラミング初心者向けにステップバイステップで詳しく解説します。なぜ必要なのか、どうやって更新日時を取得するのか、どう判定するのか、どんな点に注意するべきかまで、例題やコード例やテンプレートを交えながら、できるだけかみ砕いて説明します。

まず理解したい、更新日時でファイルを検索するとは何か

時間条件に合うファイルだけを見つけることです

更新日時でファイルを検索するとは、各ファイルが最後に更新された時刻を確認し、その値が決めた条件に合うものだけを取り出すことです。たとえば、「過去3日以内に更新されたファイルだけを探す」「2026年1月1日より前に更新されたファイルだけを探す」といった使い方です。

初心者の方はまず、「ファイル名ではなく、いつ更新されたかという時間情報で選ぶ処理」だと理解すると分かりやすいです。これはサイズ条件や拡張子条件と同じように、ファイルを条件で絞る考え方の一種です。

検索は候補を見つけることが目的であり、すぐ削除や移動をするとは限りません

ここはとても重要です。更新日時に合うファイルを見つけたからといって、すぐ削除や移動をするとは限りません。まずは対象を見つけ、必要なファイルか、不要なファイルか、処理対象にするべきかを確認する段階が大切です。初心者の方は特に、「検索」と「その後の操作」を分けて考える習慣を持つと安全です。

なぜ更新日時でファイルを検索するのか

最近のファイルだけを効率よく扱えるからです

毎日ファイルが増えるフォルダでは、最新のものだけを確認したいことがよくあります。更新日時で検索できれば、過去分すべてを見るのではなく、必要な範囲だけに絞れます。

古いファイルを整理しやすくなるからです

一定期間より前のファイルだけを見つければ、整理候補の確認や保管ルールの見直しがしやすくなります。これは古いファイルの削除やアーカイブとつながる考え方です。

定期処理の条件を作りやすくなるからです

たとえば、「昨日更新されたファイルだけ集計する」「過去7日以内のファイルだけバックアップする」といった自動処理を組みやすくなります。つまり、更新日時検索は時間ベースの自動化の入口になります。

更新日時の基本的な考え方を理解する

更新日時は「最後に内容が変わった時刻」と考えると分かりやすいです

更新日時とは、一般的にはそのファイルの内容が最後に変更された時刻として扱われることが多いです。初心者の方はまず、「最後にそのファイルが書き換えられたタイミング」だと理解すると分かりやすいです。

ただし、環境によって細かな扱いが異なる場合もあるため、まずは学習用として「最後に更新された時刻」と押さえておけば十分です。

人間は日付で考えますが、プログラムは数値で比べることが多いです

人は「昨日」「7日前」「2026年1月1日より前」と考えますが、プログラムではそれを数値として比較することが多いです。そのため、日時を扱うには「今の時刻」と「ファイルの更新時刻」を比べたり、指定した日付を日時データに変換したりする考え方が必要になります。

Pythonで更新日時を取得する基本

os.path.getmtime() を使うのが基本です

Pythonでファイルの更新日時を取得するときは、os.path.getmtime() を使うのが基本です。

import os

# sample.txt の更新日時を取得します
modified_time = os.path.getmtime("sample.txt")

# 取得した更新日時を表示します
print(modified_time)
Python

このコードでは、sample.txt の更新日時を取得しています。初心者の方はまず、「更新日時取得には os.path.getmtime() を使う」と覚えると分かりやすいです。

そのままだと分かりにくいので、日時表示へ変換することもあります

os.path.getmtime() で得られる値は、そのままでは人間にとって分かりにくいことがあります。そこで、確認用には日時形式へ変換して表示することもよくあります。まずは比較に使える値が取れることを理解し、次に見やすい表示へ進むとよいです。

最初に覚えたい、更新日時検索の流れ

まず対象ファイルを決める

最初に、どのファイルを確認したいかを決めます。初心者の段階では、まず1つの練習用ファイルから始めると理解しやすいです。

次に、更新日時を取得する

os.path.getmtime() を使って更新日時を取り出し、その値を変数へ入れます。

最後に、条件と比べて判定する

今より新しいか古いか、指定日時より前か後か、何日以内かといった条件で判定します。これが更新日時検索の中心です。

例題1 1つのファイルの更新日時を確認する

最初に作るべき基本例です

まずは、1つのファイルの更新日時を取得して確認するシンプルな例を見てみます。

import os
import datetime

# 確認したいファイル名です
file_name = "sample.txt"

# ファイルが存在するか確認します
if os.path.exists(file_name):
    # 更新日時を取得します
    modified_time = os.path.getmtime(file_name)

    # 人が分かりやすい日時形式に変換します
    modified_datetime = datetime.datetime.fromtimestamp(modified_time)

    # 更新日時を表示します
    print(f"{file_name} の更新日時は {modified_datetime} です")
else:
    print(f"{file_name} は存在しません")
Python

この例では、まず更新日時を「見る」ことに集中しています。初心者の方は、いきなり条件検索へ進む前に、この段階で更新日時の扱いに慣れることが大切です。

例題2 過去7日以内に更新されたファイルか判定する

現在時刻との差を使う考え方が重要です

更新日時検索では、「何日以内か」という条件がよく使われます。その場合は、現在時刻との差を計算して判断します。

import os
import time

# 確認したいファイル名です
file_name = "sample.txt"

# 7日分の秒数です
seven_days_seconds = 7 * 24 * 60 * 60

# ファイルが存在するか確認します
if os.path.exists(file_name):
    # 更新日時を取得します
    modified_time = os.path.getmtime(file_name)

    # 現在時刻を取得します
    current_time = time.time()

    # 現在時刻との差を計算します
    age_seconds = current_time - modified_time

    # 過去7日以内かどうか判定します
    if age_seconds <= seven_days_seconds:
        print(f"{file_name} は過去7日以内に更新されたファイルです")
    else:
        print(f"{file_name} は7日より前に更新されたファイルです")
else:
    print(f"{file_name} は存在しません")
Python

この例では、「今から見てどれくらい前に更新されたか」を秒で比べています。初心者の方は、日数を秒へ直して比較する考え方に慣れることが大切です。

例題3 指定日付より前に更新されたファイルを検索する

具体的な日付を基準にする方法も重要です

「7日以内」のような相対条件だけでなく、「2026年1月1日より前」のような絶対的な日付条件で探したいこともあります。

import os
import datetime

# 確認したいファイル名です
file_name = "sample.txt"

# 基準日を作成します
target_date = datetime.datetime(2026, 1, 1)

# ファイルが存在するか確認します
if os.path.exists(file_name):
    # 更新日時を取得します
    modified_time = os.path.getmtime(file_name)

    # 日時形式に変換します
    modified_datetime = datetime.datetime.fromtimestamp(modified_time)

    # 基準日より前かどうか判定します
    if modified_datetime < target_date:
        print(f"{file_name} は2026年1月1日より前に更新されたファイルです")
    else:
        print(f"{file_name} は2026年1月1日以降に更新されたファイルです")
else:
    print(f"{file_name} は存在しません")
Python

この例では、指定した日付とファイルの更新日時を直接比べています。初心者の方は、相対条件と絶対条件の2種類があると理解すると応用しやすいです。

例題4 フォルダ内のファイル一覧と組み合わせて検索する

実際の自動化ではこの形がよく使われます

1つのファイルだけでなく、フォルダ内の複数ファイルから条件に合うものを探す形もよく使います。

import os
import time

# 対象フォルダのパスです
folder_path = "."

# 3日分の秒数です
three_days_seconds = 3 * 24 * 60 * 60

# 現在時刻を取得します
current_time = time.time()

# フォルダ内の一覧を取得します
file_list = os.listdir(folder_path)

# ファイルを順番に確認します
for file_name in file_list:
    # フルパスを作成します
    full_path = os.path.join(folder_path, file_name)

    # ファイルだけを対象にします
    if os.path.isfile(full_path):
        # 更新日時を取得します
        modified_time = os.path.getmtime(full_path)

        # 現在時刻との差を計算します
        age_seconds = current_time - modified_time

        # 過去3日以内に更新されたファイルだけ表示します
        if age_seconds <= three_days_seconds:
            print(f"{file_name} は過去3日以内に更新されています")
Python

この例まで理解できると、実際のファイル管理や定期確認の自動化へかなり近づきます。

更新日時検索で特に注意したい重要ポイント

条件の向きを取り違えないことが最重要です

これは最重要ポイントです。更新日時検索では、「新しいファイルを探す」のか、「古いファイルを探す」のかで比較の向きが変わります。たとえば、「過去7日以内」なら今との差が7日以下、「7日より前」なら今との差が7日より大きい、という形です。初心者の方は、ここを逆にしやすいので特に注意が必要です。

「以前」「以後」「以内」「未満」の違いを意識する必要があります

たとえば、「7日以内」と「7日未満」は厳密には違いますし、「2026年1月1日以前」と「2026年1月1日より前」も境界値の含み方が異なります。初心者の方は、比較演算子の意味を丁寧に意識することが大切です。

ファイルだけを対象にする意識が大切です

フォルダ内一覧にはサブフォルダ名も含まれることがあります。そのため、更新日時取得前に os.path.isfile() で本当にファイルかどうか確認する流れが重要です。ここを省くと、意図しない対象に処理しようとして混乱しやすくなります。

更新日時を見やすく表示する工夫も役立ちます

検索結果に日時も一緒に出すと確認しやすくなります

条件に合うファイル名だけでなく、更新日時そのものも一緒に表示すると、確認作業がしやすくなります。

import os
import datetime

# 確認したいファイル名です
file_name = "sample.txt"

# ファイルが存在するか確認します
if os.path.exists(file_name):
    # 更新日時を取得します
    modified_time = os.path.getmtime(file_name)

    # 日時形式に変換します
    modified_datetime = datetime.datetime.fromtimestamp(modified_time)

    # 見やすく表示します
    print(f"{file_name} の更新日時は {modified_datetime.strftime('%Y-%m-%d %H:%M:%S')} です")
Python

このように表示を工夫すると、検索結果の意味がより分かりやすくなります。

初心者向けの実用テンプレート

ここまでの内容を踏まえると、更新日時でファイルを検索する基本テンプレートは次のようになります。

import os
import time

# 対象フォルダのパスです
folder_path = "."

# 7日分の秒数です
days_seconds = 7 * 24 * 60 * 60

# 現在時刻を取得します
current_time = time.time()

# フォルダ内の一覧を取得します
file_list = os.listdir(folder_path)

# 条件に合うファイルを入れるリストです
target_files = []

# ファイルを順番に確認します
for file_name in file_list:
    # フルパスを作成します
    full_path = os.path.join(folder_path, file_name)

    # ファイルだけを対象にします
    if os.path.isfile(full_path):
        # 更新日時を取得します
        modified_time = os.path.getmtime(full_path)

        # 現在時刻との差を計算します
        age_seconds = current_time - modified_time

        # 過去7日以内に更新されたファイルだけを対象にします
        if age_seconds <= days_seconds:
            target_files.append(file_name)

# 結果を表示します
print(target_files)
Python

このテンプレートはとても基本的ですが、更新日時検索の出発点として非常に重要です。初心者の方は、まずこの形をしっかり理解し、その後で特定拡張子条件や再帰検索と組み合わせるとよいです。

初心者がよくつまずくポイント

新しいファイルを探しているのか、古いファイルを探しているのか途中で分からなくなる

更新日時検索では、比較の向きが逆になることがあります。最初に「何を探したいのか」をはっきり決めておくことが大切です。

日数条件を秒へ直す考え方で混乱する

人間向けの日数を、プログラム向けの秒数へ直しているだけだと理解する必要があります。ここをあいまいにすると、条件が意図とずれやすくなります。

検索結果をすぐ削除や移動へつなげてしまう

更新日時条件に合うことと、不要であることは同じではありません。まずは検索して確認する段階を大切にするべきです。

セキュリティと安全性の観点からの注意

外部から受け取ったパスや日時条件をそのまま信用しないことが重要です

情報セキュリティの基本として、外部入力をそのまま信用しない考え方があります。検索対象フォルダや日数条件、基準日付を外部から受け取る場合は、想定外の範囲や不自然な値になっていないかを確認する必要があります。初心者の段階では、まず自分で決めた固定値で安全に試すことがおすすめです。

更新日時だけでファイルの重要性を判断しないことも大切です

古いファイルでも重要な記録や証跡である場合がありますし、新しいファイルでも不要な一時ファイルであることがあります。更新日時はあくまで判断材料のひとつであり、それだけで価値を決めつけない姿勢が大切です。

学習を進めるときのおすすめの順番

更新日時でファイルを検索する技術を無理なく身につけるには、次の順番で進めると理解しやすいです。

  • まずは os.path.getmtime() の基本を覚える
  • 次に 1つのファイルの更新日時を確認する
  • その次に現在時刻との差を計算する
  • 過去何日以内かを判定する
  • 指定日付との比較を試す
  • 最後にフォルダ一覧取得と組み合わせる

この順番で進めると、単なる日時取得ではなく、実用的な時間条件検索として自然に理解しやすくなります。

まとめ

Python自動化におけるファイル操作自動化の基礎として、「更新日時でファイルを検索する」ことは非常に重要です。最近更新されたファイルだけを確認したり、古いファイルを整理候補として見つけたり、時間条件付きの自動処理を組み立てたりするためにも、この考え方は大きな役割を持っています。

基本は、os.path.getmtime() で更新日時を取得し、現在時刻や指定日付と比べて、条件に合うものだけを選ぶ流れです。ただし、本当に大切なのは、「何を新しいとするのか」「何を古いとするのか」をあいまいにしないことと、比較条件の向きを取り違えないことです。更新日時検索は便利ですが、条件設計には丁寧さが必要です。

初心者の方はまず、1つのファイルの更新日時を確認するところから始め、その後で過去何日以内かの判定、指定日付との比較、フォルダ一覧取得との組み合わせへと少しずつ発展させると理解しやすいです。

更新日時でファイルを検索する技術は、一見すると単なる条件分岐に見えるかもしれません。しかし実際には、定期処理、整理、監視、運用改善の入口になるとても重要な基本です。だからこそ、早い段階で丁寧に理解しておく価値があります。

タイトルとURLをコピーしました