Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mendapatkan Cap Masa Penciptaan dan Pengubahsuaian Fail dengan Boleh Dipercayai Merentasi Sistem Operasi Berbeza?

Bagaimanakah Saya Boleh Mendapatkan Cap Masa Penciptaan dan Pengubahsuaian Fail dengan Boleh Dipercayai Merentasi Sistem Operasi Berbeza?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-12 21:49:10995semak imbas

How Can I Get a File's Creation and Modification Timestamps Reliably Across Different Operating Systems?

Mengakses Penciptaan Fail dan Tarikh/Masa Pengubahsuaian Cross-Platform

Mengambil semula tarikh/masa pengubahsuaian fail merentas platform adalah mudah dengan os.path .getmtime(path). Untuk pendekatan yang lebih terperinci, pertimbangkan nuansa berikut:

Windows

Untuk tarikh penciptaan pada Windows, gunakan os.path.getctime(path). Ini mendapatkan semula "masa penciptaan" fail (ctime), yang khusus untuk Windows.

Mac dan Unix (Kecuali Linux)

Akses tarikh penciptaan melalui .st_birthtime atribut os.stat() hasilnya.

Linux

Malangnya, mendapatkan semula tarikh penciptaan pada Linux pada masa ini tidak boleh dilaksanakan tanpa melaksanakan sambungan Python C. Mengakses st_crtime, yang menyimpan tarikh penciptaan pada sistem fail Linux, dihadkan oleh pengehadan dalam kernel Linux. Sebagai sandaran, gunakan os.path.getmtime() untuk mendapatkan cap waktu pengubahsuaian kandungan.

Untuk merangkumi semua platform, pendekatan serba boleh boleh:

import os
import platform

def creation_date(path):
    if platform.system() == 'Windows':
        return os.path.getctime(path)
    else:
        stat = os.stat(path)
        try:
            return stat.st_birthtime
        except AttributeError:
            return stat.st_mtime

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Cap Masa Penciptaan dan Pengubahsuaian Fail dengan Boleh Dipercayai Merentasi Sistem Operasi Berbeza?. 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