koddla

Yazılımcıları bilgi ile güçlendirir.

Python’da dosya oluşturma ve değiştirme tarihi/saati nasıl öğrenilir?

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’da os.stat()‘ın os.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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top