Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mendapatkan Penciptaan Fail dan Masa Pengubahsuaian Cross-Platform dalam Python?

Bagaimanakah Saya Boleh Mendapatkan Penciptaan Fail dan Masa Pengubahsuaian Cross-Platform dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-12 20:44:10173semak imbas

How Can I Get File Creation and Modification Times Cross-Platform in Python?

Pendekatan Merentas Platform untuk Mendapatkan Kembali Penciptaan Fail dan Tarikh/Masa Pengubahsuaian

Apabila bekerja dengan fail merentas pelbagai platform, ia menjadi penting untuk mengakses cap masa penciptaan dan pengubahsuaian mereka. Untuk mencapai ini dalam cara merentas platform, pertimbangkan kaedah berikut:

Tarikh Pengubahsuaian

Mendapatkan tarikh pengubahsuaian fail adalah agak mudah menggunakan os.path.getmtime(path ). Kaedah ini mengembalikan cap waktu Unix yang menunjukkan masa pengubahsuaian terakhir bagi fail yang ditentukan oleh laluan.

Tarikh Penciptaan

Mendapatkan semula tarikh penciptaan fail adalah lebih mencabar, kerana pendekatannya berbeza-beza bergantung kepada sistem pengendalian. Berikut ialah pecahan:

  • Windows: Gunakan os.path.getctime() atau atribut .st_ctime os.stat().
  • Mac dan OS Unix Lain: Akses atribut .st_birthtime daripada os.stat().
  • Linux: Pada masa ini, akses terus kepada tarikh penciptaan tidak boleh dilakukan tanpa menulis sambungan C untuk Python. Walau bagaimanapun, masa fail (masa pengubahsuaian terakhir) boleh diperolehi sebagai alternatif.

Pelaksanaan Merentas Platform

Untuk menampung tarikh penciptaan yang bergantung kepada platform mendapatkan semula, fungsi merentas platform seperti berikut boleh digunakan:

import os
import platform

def creation_date(path_to_file):
    """
    Try to get the date that a file was created, falling back to when it was
    last modified if that isn't possible.
    See http://stackoverflow.com/a/39501288/1709587 for explanation.
    """
    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:
            return stat.st_mtime

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Penciptaan Fail dan Masa Pengubahsuaian Cross-Platform dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn