Maison >développement back-end >Tutoriel Python >Comment puis-je récupérer de manière cohérente les dates de création et de modification des fichiers sous Linux et Windows ?

Comment puis-je récupérer de manière cohérente les dates de création et de modification des fichiers sous Linux et Windows ?

DDD
DDDoriginal
2024-12-15 04:26:12599parcourir

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

Récupération multiplateforme des dates de création et de modification de fichiers

La détermination des dates/heures de création et de modification de fichiers de manière cohérente sur toutes les plateformes a été un défi persistant . Voici une présentation complète des meilleures approches pour Linux et Windows :

Obtention des dates de modification des fichiers

La récupération de l'horodatage de la dernière modification est simple sous Linux et Windows. Utilisez simplement la fonction os.path.getmtime(path). Il renvoie l'horodatage Unix de la modification la plus récente apportée au fichier au chemin spécifié.

Obtention des dates de création de fichiers

L'extraction des dates de création de fichiers s'avère cependant plus complexe et dépendant de la plateforme :

  • Windows :
    Windows maintient une création date (ctime) pour les fichiers. Accédez à ces informations via os.path.getctime(path) ou l'attribut .st_ctime du résultat depuis os.stat().
  • Mac :
    MacOS et certains systèmes basés sur Unix les systèmes fournissent un attribut .st_birthtime qui stocke la création du fichier date.
  • Linux :
    Actuellement, déterminer les dates de création de fichiers sous Linux n'est pas possible sans écrire une extension C pour Python. Cependant, le noyau Linux renvoie l'horodatage de la dernière modification du fichier via st_mtime, qui peut servir de proxy raisonnable.

Compatibilité multiplateforme

Pour les compatibilité de la plate-forme, considérez le code suivant :

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

En tirant parti des techniques spécifiques à la plate-forme et en gérant les exceptions de manière appropriée, ce code permet une récupération cohérente des dates de création et de modification des fichiers sous Linux et Windows.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn