首頁 > 後端開發 > Python教學 > 如何可靠地取得不同作業系統上的檔案建立和修改時間?

如何可靠地取得不同作業系統上的檔案建立和修改時間?

Mary-Kate Olsen
發布: 2024-12-22 19:40:12
原創
696 人瀏覽過

How Can I Reliably Get File Creation and Modification Times Across Different Operating Systems?

跨平台檔案建立和修改日期/時間擷取

可以取得不同作業系統的檔案建立和修改日期/時間一項複雜的任務。

修改日期

使用 os.path.getmtime() 跨平台取得檔案修改日期相對簡單,它提供上次修改的 Unix 時間戳記。

建立日期

對於檔案建立日期,由於平台特定,流程變得更加複雜實作:

  • Windows : Windows 將建立日期儲存在檔案的ctime 中。可以透過 os.path.getctime() 或 os.stat() 的 .st_ctime 屬性進行存取。
  • Mac: 在 Mac 和某些基於 Unix 的作業系統上,.st_birthtime os.stat() 的屬性提供了建立日期。
  • Linux: Linux 確實目前沒有標準化的方法來檢索建立日期。雖然某些檔案系統(如 ext4)儲存數據,但 Linux 核心不提供直接存取資料的方法。最接近的替代方案是檔案的 mtime,它指示最後一次內容修改。

跨平台程式碼

結合這些特定於平台的方法,跨平台平台程式碼片段如下:

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:
            # We're probably on Linux. No easy way to get creation dates here,
            # so we'll settle for when its content was last modified.
            return stat.st_mtime
登入後複製

此程式碼首先檢查平台以應用適當的方法。在 Windows 上,它使用 os.path.getctime(),而在 Mac 和一些基於 Unix 的作業系統上,它嘗試使用 .st_birthtime 檢索建立日期。對於 Linux,它會回退到透過 .st_mtime 取得的修改日期。

以上是如何可靠地取得不同作業系統上的檔案建立和修改時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板