ホームページ > バックエンド開発 > Python チュートリアル > Linux と Windows 間でファイルの作成日と変更日を一貫して取得するにはどうすればよいですか?

Linux と Windows 間でファイルの作成日と変更日を一貫して取得するにはどうすればよいですか?

DDD
リリース: 2024-12-15 04:26:12
オリジナル
602 人が閲覧しました

How Can I Consistently Retrieve File Creation and Modification Dates Across Linux and Windows?

ファイルの作成日と変更日のクロスプラットフォームでの取得

プラットフォーム間で一貫してファイルの作成日と変更日/時間を決定することは、長年の課題でした。 。 Linux と Windows に最適なアプローチの包括的な内訳は次のとおりです。

ファイル変更日の取得

最終変更タイムスタンプの取得は、Linux と Windows の両方で簡単です。 os.path.getmtime(path) 関数を使用するだけです。これは、指定されたパスにあるファイルに対する最新の変更の Unix タイムスタンプを返します。

ファイル作成日の取得

ただし、ファイル作成日の抽出はより複雑であることがわかります。そしてプラットフォーム依存:

  • Windows:
    Windows はファイルの作成日 (ctime) を保持します。この情報には、os.path.getctime(path) または os.stat() の結果の .st_ctime 属性を通じてアクセスします。
  • Mac:
    MacOS および特定の Unix ベースシステムは、ファイルの作成を保存する .st_birthtime 属性を提供します。 date.
  • Linux:
    現在、Linux でファイルの作成日を決定するには、Python 用の C 拡張機能を作成する必要があります。ただし、Linux カーネルは st_mtime を通じてファイルの最終変更タイムスタンプを返します。これは適切なプロキシとして機能します。

クロスプラットフォーム互換性

クロスプラットフォームの場合プラットフォームの互換性を考慮するには、次のコードを検討してください:

import os
import platform

def creation_date(path_to_file):
    """
    Retrieve the date the file was created.
    If not possible, fall back to the last modified date.
    """
    if platform.system() == 'Windows':
        return os.path.getctime(path_to_file)
    else:
        stat = os.stat(path_to_file)
        try:
            return stat.st_birthtime
        except AttributeError:
            # Assuming Linux, fall back to modification date
            return stat.st_mtime
ログイン後にコピー

を利用するプラットフォーム固有の手法と例外の適切な処理により、このコードにより、Linux と Windows の両方でファイルの作成日と変更日を一貫して取得できます。

以上がLinux と Windows 間でファイルの作成日と変更日を一貫して取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート