Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでファイルの作成日時・変更日時を取得する方法【Windows/UNIX対応】

Pythonでファイルのタイムスタンプを扱う場合、OSによって取得方法が異なる点に注意が必要です。この記事では、WindowsとUNIX系システムそれぞれにおけるファイルの作成日時・変更日時の取得方法を解説します。

Windowsで作成日時を取得する

Windows環境でファイルの作成日時を取得するには、os.path.getctime() 関数を使用します。

>>> import os
>>> print(os.path.getctime('my_file'))
1505928271.0689342

戻り値はエポック(1970年1月1日0時0分0秒UTC)からの経過秒数で表されます。人間が読める形式に変換したい場合は、datetime モジュールを組み合わせると便利です。

>>> from datetime import datetime
>>> ts = os.path.getctime('my_file')
>>> print(datetime.fromtimestamp(ts))
2017-09-20 15:24:31.068934

UNIX系システムで作成日時を取得する

UNIX系システム(macOSなど)では、os.path.getctime() は作成日時ではなく、ファイルの属性や内容が最後に変更された時刻(メタデータ変更時刻)を返します。そのため、作成日時を取得するには os.stat() で得られるstatオブジェクトの st_birthtime 属性を使用します。

import os

stat = os.stat(path_to_file)
try:
    print(stat.st_birthtime)
except AttributeError:
    # おそらくLinux環境。作成日時を簡単に取得する手段がないため、
    # 内容が最後に変更された時刻で代用する
    print(stat.st_mtime)

出力結果

上記のコードを実行すると、次のような出力が得られます。

1505928271.0689342

なお、Linuxの多くのファイルシステムでは作成日時(誕生時刻)自体が記録されないため、st_birthtime 属性が存在しないケースがあります。その場合は例外処理により st_mtime(最終更新時刻)へフォールバックする実装が実用的です。

変更日時(最終更新日時)を取得する

ファイルの変更日時を取得するには、os.path.getmtime() を使用します。この関数はクロスプラットフォームでサポートされており、Windows・macOS・Linuxのいずれでも同じように動作します。

>>> import os
>>> print(os.path.getmtime('my_file'))
1505928275.3081832

まとめ

  • Windowsの作成日時:os.path.getctime()
  • UNIX系の作成日時:os.stat()st_birthtime(Linuxでは非対応の場合あり)
  • 変更日時:os.path.getmtime()(クロスプラットフォーム対応)

OS間の差異を意識して適切な関数を選択することで、どの環境でも正確にタイムスタンプを取得できます。

  1. PythonのTkinterでファイル選択ダイアログを使い、選択したディレクトリの場所を表示・保存する方法

    ダイアログボックスは、さまざまな種類のアプリケーションでおなじみのUI要素であり、ユーザーとの対話が重要となるアプリケーション開発において非常に役立ちます。ダイアログボックスを利用すれば、ユーザーにファイルの選択を求め、その後、ファイルの読み込みや書き込みといった操作を実行できます。Pythonでは、filedialogモジュールを使用することで、こうしたダイアログボックスを簡単に作成できます。 サンプルコード 以下の例では、ローカルディレクトリからファイルを選択するようユーザーに促し、選択されたファイルの場所(パス)をラベルウィジェットで表示するアプリケーションを作成します。 #Import

  2. PythonでPhantomJSとSelenium WebDriverを使ってウィンドウサイズを設定する方法

    PhantomJSとSelenium WebDriverでウィンドウサイズを設定する方法Pythonでは、PhantomJSとSelenium WebDriverを組み合わせることで、ブラウザのウィンドウサイズを自由に制御できます。PhantomJSを利用するには、まずwebdriver.PhantomJSクラスのドライバーオブジェクトを作成します。その際、phantomjs.exeドライバーファイルへのパスを引数として渡してください。ウィンドウサイズを設定するには、set_window_sizeメソッドを使用し、幅と高さを引数として指定します。また、現在のブラウザのウィンドウサイズを取得した