天天看點

python擷取檔案修改時間_如何在Python中獲得檔案建立和修改日期/時間?

以跨平台的方式擷取某種修改日期很容易,隻需調用即可。os.path.getmtime(path)然後,您将得到Unix時間戳,該檔案将在path最後一次修改。

擷取檔案創造另一方面,日期是微妙和平台依賴的,甚至在三大作業系統之間也是不同的:在……上面

麥克,以及其他一些基于unix的作業系統,您可以使用調用的結果的

os.stat().

在……上面linux,至少在沒有為Python編寫C擴充的情況下,這是不可能的。雖然一些與linux一起使用的檔案系統商店建立日期(例如,ext4藏在st_crtime),Linux核心提供無法通路它們的方法,特别是,它傳回的結構stat()調用C,在最新的核心版本中,不包含任何建立日期字段..您還可以看到辨別符st_crtime目前在Python源..至少如果你在ext4,資料是附加到檔案系統中的inode,但沒有通路它的友善方法。

Linux上第二好的事情是通路檔案的mtime,通過os.path.getmtime()或者.st_mtime屬性os.stat()結果。這将給您最後一次修改該檔案的内容,這可能足以滿足某些用例的需要。

把所有這些放在一起,跨平台代碼應該是這樣的.import osimport platformdef 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