Platformlar arası dosya oluşturma ve değişiklik tarihlerini almanın en iyi yolu Python‘da nedir?
Platformlar arası değişiklik tarihi almak kolaydır – os.path.getmtime(path)
fonksiyonunu çağırırsınız ve dosyanın en son ne zaman değiştirildiğine dair bir Unix zaman damgasını alırsınız.
Öte yandan, dosya oluşturma tarihlerini almak, üç büyük işletim sistemi arasında bile farklılık gösteren, zahmetli bir iştir ve platforma bağlıdır:
- Windows’da bir dosyanınn
ctime
bilgisi onun oluşturulma tarihi saklar. (https://msdn.microsoft.com/en-us/library/14h5k7ff.aspx). Buna Python’daos.stat()
‘ınos.path.getctime()
veya.st_ctime
‘ı özelliklerini çağırarak erişebilirsiniz. Bu Unix’de çalışmaz, çünküctime
Unix’de dosyanın en son ne zaman içeriğinin değiştirildiğini gösterir. - Mac‘de, ve diğer bazı Unix tabanlı işletim sistemlerinde,
os.stat()
‘ın.st_birthtime
özellğini çağırırsınız. - Linux‘de, bu Python için bir C uzantısı yazmadan en azından şu anda mümkün değildir. Linux ile yaygın olarak kullanılan bazı dosya sistemleri, oluşturma tarihlerini depolasa da (örneğin,
ext4
bunlarıst_crtime
içinde saklar), Linux çekirdeği bunlara erişmenin hiçbir yolunu sunmaz.
Bunların hepsini bir araya getirirsek, platformlar arası kod şöyle görünmelidir…
import os
import platform
def creation_date(path_to_file):
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:
# Muhtemelen Linuxdayız. oluşturma tarihlerinin kolay bir yolu yok.
# Dolayısıyla sadece değiştirilme tarihine kalıyoruz.
return stat.st_mtime