Uzyskiwanie jakiejś daty modyfikacji na wiele platform jest łatwe - wystarczy zadzwonić, a otrzymasz uniksowy znacznik czasu, kiedy plik był ostatnio modyfikowany.os.path.getmtime(path)path
Z drugiej strony, uzyskiwanie dat utworzenia plików jest skomplikowane i zależne od platformy, różni się nawet między trzema dużymi systemami operacyjnymi:
Na Macu , a także w niektórych innych systemach operacyjnych opartych na Uniksie, możesz użyć .st_birthtimeatrybutu wyniku połączenia z os.stat().
W Linuksie jest to obecnie niemożliwe, przynajmniej bez napisania rozszerzenia C dla Pythona. Chociaż niektóre systemy plików powszechnie używane w systemie Linux przechowują daty utworzenia (na przykład ext4przechowują je w st_crtime), jądro Linuksa nie oferuje dostępu do nich ; w szczególności struktury zwracane przez stat()wywołania w C, od najnowszej wersji jądra, nie zawierają żadnych pól daty utworzenia . Możesz również zobaczyć, że identyfikator st_crtimeobecnie nie występuje nigdzie w źródle Pythona . Przynajmniej jeśli jesteś włączony ext4, dane są dołączane do i-węzłów w systemie plików, ale nie ma wygodnego sposobu dostępu do nich.
Kolejną najlepszą rzeczą w Linuksie jest dostęp do pliku za mtimepośrednictwem jednego os.path.getmtime()z .st_mtimeatrybutów os.stat()wyniku. To da ci ostatnią modyfikację zawartości pliku, co może być odpowiednie w niektórych przypadkach użycia.
Podsumowując, kod dla wielu platform powinien wyglądać mniej więcej tak ...
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
exceptAttributeError:# 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
Zrobiłem co w mojej mocy, aby zebrać to w całość (i spędziłem kilka godzin na badaniu procesu) i jestem pewien, że jest to co najmniej bardziej poprawne niż odpowiedzi, które tu były wcześniej, ale to jest naprawdę trudny temat i „ d doceniamy wszelkie poprawki, wyjaśnienia lub inne informacje, które ludzie mogą zaoferować. W szczególności chciałbym skonstruować sposób dostępu do tych danych na ext4dyskach pod Linuksem i chciałbym dowiedzieć się, co się dzieje, gdy Linux odczytuje pliki napisane przez Windows lub odwrotnie, biorąc pod uwagę, że używają one st_ctimeinaczej.
Mark Amery
25
Szczerze mówiąc, czas tworzenia pliku jest zwykle dość bezużyteczny. Kiedy otwierasz istniejący plik do zapisu w trybie "w", nie zastępuje go, po prostu otwiera istniejący plik i obcina go. Mimo że zawartość pliku jest całkowicie niezwiązana z tym, co miał podczas tworzenia, nadal można powiedzieć, że plik został „utworzony” na długo przed bieżącą wersją. I na odwrót, redaktorzy używający zamiany atomowej podczas zapisywania (oryginalny plik jest zastępowany nowym plikiem tymczasowym w toku) wyświetlałby późniejszą datę utworzenia, nawet jeśli usunąłeś tylko jeden znak. Użyj czasu modyfikacji, nie puszczaj gruba na czas tworzenia.
ShadowRanger
3
Po wielu latach wreszcie znalazłem zastosowanie do tworzenia plików! Piszę kod, aby sprawdzić konwencję nazewnictwa plików w niektórych katalogach, więc przede wszystkim chcę rozważyć pliki, które zostały nazwane po utworzeniu konwencji. Zastąpienie całej zawartości (mtime) nie ma znaczenia: jeśli już tam była, to jest dziadek.
Steve Jessop
1
Cześć Mark. Proponuję uproszczenie. W systemie Linux zwracanie stat.st_ctimejest bardziej istotne, ponieważ w wielu przypadkach czasem ostatniej zmiany metadanych może być czas utworzenia (przynajmniej ctimebliższy rzeczywistemu czasowi tworzenia niż mtime). Dlatego możesz po prostu zastąpić swój fragment stat = os.stat(path_to_file); try: return stat.st_birthtime; except AttributeError: return stat.st_ctime. Co myślisz? Pozdrawiam
olibre,
4
@olibre „przynajmniej ctime jest bliższy rzeczywistemu czasowi tworzenia niż mtime” - nie, nie jest; to stwierdziłem kilka razy, ale jest to całkowicie nieprawda. Chyba że ręcznie pomieszane z wartościami w swojej węzła, ctimezawsze powinien być równy lub później niż mtime, ponieważ mtimezmiana powoduje to ctimezmianę (bo mtimesam jest uważany za „metadane”). Zobacz stackoverflow.com/a/39521489/1709587, gdzie podam przykładowy kod ilustrujący to.
Uwaga : ctime()nie nie odnoszą się do czasu utworzenia na systemów uniksowych, ale raczej ostatni raz dane iwęzłów zmieniło. (podziękowania dla kojiro za wyjaśnienie tego faktu w komentarzach poprzez podanie linku do interesującego posta na blogu)
Na wypadek, gdyby ktoś pominął komentarz @ Glypha do pytania, ctime nie oznacza czasu tworzenia w systemach POSIX . Zastanawiam się, ile osób przeszukało ten post w ciągu ostatnich trzech lat i napisało błędny kod.
kojiro,
16
Pamiętaj, że pierwszy przykład podaje ciąg znaków, a nie datę / godzinę lub liczbę.
gak
1
@kojiro blogu już związana może być bardziej wyraźne, że na Unix plik użytkownika ctimezostanie zaktualizowany, gdy mtimerobi (ponieważ mtimejest „metadane”), a więc ctimejest zwykle zawsze równa lub przedmtime . Traktowanie ctimejak czas „stworzony” nie ma zatem żadnego sensu. -1!
Mark Amery
Twoja pierwsza opcja zwraca te same wyniki zarówno dla utworzenia pliku, jak i ostatniej modyfikacji! Last modified: Fri Jan 31 11:08:13 2020i Created: Fri Jan 31 11:08:13 2020na Linux Ubuntu 16.04!
Färid Alijani
Odkryłem, że time.ctime(os.path.getmtime(file))zwraca 2 typy ciągów, w zależności od tego, czy plik został zmodyfikowany przez system, czy przez użytkownika. Jeśli został zmodyfikowany przez system, łańcuch będzie zawierał 2 spacje między miesiącem a dniem. Nie wiem dlaczego
Matteo Antolini
376
Najlepszą funkcją do tego celu jest os.path.getmtime () . To po prostu wykorzystuje os.stat(filename).st_mtime.
Moduł datetime jest najlepszym manipulowaniem znacznikami czasu, więc datę modyfikacji można uzyskać jako datetimeobiekt taki jak ten:
import os
import datetime
def modification_date(filename):
t = os.path.getmtime(filename)return datetime.datetime.fromtimestamp(t)
Przykład użycia:
>>> d = modification_date('/var/log/syslog')>>>print d
2009-10-0610:50:01>>>print repr(d)
datetime.datetime(2009,10,6,10,50,1)
Ta odpowiedź jest również trochę błędna. getmtimejest najbliższą rzeczą dostępną w systemie Unix (gdzie uzyskanie dat utworzenia nie jest możliwe), ale zdecydowanie nie jest najlepszą funkcją do użycia w systemie Windows, gdzie ctimejest czas utworzenia.
Mark Amery
3
@MarkAmery - Ta odpowiedź jest wyraźnie oznaczona jako dotycząca czasu modyfikacji.
edit: W nowszym kodzie powinieneś prawdopodobnie użyć os.path.getmtime () (dzięki Christian Oudard),
ale zwróć uwagę, że zwraca zmiennoprzecinkową wartość time_t z ułamkiem sekund (jeśli twój system to obsługuje)
Os.path.getmtime () jest stworzony do tego i jest prostszy.
Christian Oudard
5
Klauzula „w nowym kodzie” tutaj jest nieco myląca. os.path.getmtime()istnieje od czasu wydania Python 1.5.2 (patrz stare dokumenty ), wydanego zanim straciłem większość zębów mlecznych i prawie dekadę przed napisaniem oryginalnej wersji tej odpowiedzi.
Mark Amery
39
Istnieją dwie metody uzyskania czasu mod, os.path.getmtime () lub os.stat (), ale ctime nie jest wiarygodny na różnych platformach (patrz poniżej).
getmtime ( ścieżka ) Zwraca czas ostatniej modyfikacji ścieżki. Wartość zwracana to liczba podająca liczbę sekund od epoki (patrz moduł czasu). Podnieś os.error, jeśli plik nie istnieje lub jest niedostępny. Nowości w wersji 1.5.2. Zmieniono w wersji 2.3: Jeśli os.stat_float_times () zwraca True, wynikiem jest liczba zmiennoprzecinkowa.
stat ( ścieżka ) Wykonaj wywołanie systemowe stat () na podanej ścieżce. Zwracana wartość to obiekt, którego atrybuty odpowiadają elementom struktury statystyki, a mianowicie: st_mode (bity ochronne), st_ino (numer i-węzła), st_dev (urządzenie), st_nlink (liczba twardych dowiązań), st_uid (identyfikator użytkownika właściciela ), st_gid (identyfikator grupy właściciela), st_size (rozmiar pliku, w bajtach), st_atime (czas ostatniego dostępu), st_mtime (czas ostatniej modyfikacji treści), st_ctime (zależny od platformy; czas ostatniej zmiany metadanych w systemie Unix lub czas utworzenia w systemie Windows) :
>>>import os
>>> statinfo = os.stat('somefile.txt')>>> statinfo
(33188,422511L,769L,1,1032,100,926L,1105022698,1105022732,1105022732)>>> statinfo.st_size
926L>>>
W powyższym przykładzie użyjesz statinfo.st_mtime lub statinfo.st_ctime, aby uzyskać odpowiednio mtime i ctime.
W Pythonie 3.4 i nowszych można użyć zorientowanego obiektowo interfejsu modułu pathlib , który zawiera opakowania dla większości modułów systemu operacyjnego . Oto przykład pobierania statystyk plików.
>>>import pathlib
>>> fname = pathlib.Path('test.py')>>>assert fname.exists(), f'No such file: {fname}'# check that the file exists>>>print(fname.stat())
os.stat_result(st_mode=33206, st_ino=5066549581564298, st_dev=573948050, st_nlink=1, st_uid=0, st_gid=0, st_size=413, st_atime=1523480272, st_mtime=1539787740, st_ctime=1523480272)
Aby uzyskać więcej informacji o tym os.stat_result, co zawiera, zapoznaj się z dokumentacją . Dla potrzebnego czasu modyfikacji fname.stat().st_mtime:
os.statzwraca nazwaną krotkę z atrybutami st_mtimei st_ctime. Czas modyfikacji jest st_mtimena obu platformach; niestety w systemie Windows ctimeoznacza „czas utworzenia”, podczas gdy w systemie POSIX oznacza „czas zmiany”. Nie znam żadnego sposobu na uzyskanie czasu tworzenia na platformach POSIX.
Oto więcej o tagowanych krotkach: stackoverflow.com/questions/2970608/... Działają jak krotki, ale spróbuj dir(..)jednego. Np.dir(os.stat(os.listdir('.')[0]))
-1: Podobnie jak w przypadku innych odpowiedzi, nie da ci to czasu utworzenia pliku w systemie Windows (który ponownie nie jest nawet wspomniany w odpowiedzi).
ntninja
@ntninja jesteś tego pewien? Używam tylko systemu Windows i to absolutnie działa. napisałem ten skrypt na początku 2015 roku. Uważam, że był on bardziej przejrzysty, od razu do rzeczy, kompletny i zrozumiały dla innych tutaj. (które przypadkiem postanowiłem poszukać tutaj zamiast moich starych skryptów, tylko że nie było nic nowego. nie ... tak jest)
Puddle
Och, chciałem powiedzieć „… to nie da ci czasu na utworzenie pliku, chyba że jesteś w systemie Windows”. Przepraszam! Faktem jest, że ta odpowiedź nie jest przenośna i nie wspomina o tym fakcie. (Przykład danych wyjściowych w systemie Linux: pastebin.com/50r5vGBE )
ntninja
@ntnja, to powiesz wszystkim innym?
Puddle
Zostawiłem już kilka innych komentarzy, a wkrótce opublikuję odpowiedź, która działa również na (niedawnym) Linuksie. Ale tak naprawdę jedyną wadą w swoim poście jest to, że odpowiedź tylko dla systemu Windows nie wspomina o tym fakcie. W pytaniu OP nawet konkretnie poprosił o rozwiązanie kompatybilne z Windows i Linux. Dlatego uważam, że bardzo pomocne byłoby dodanie tego „szczegółu” gdzieś na górze, aby ludzie nie byli wprowadzani w błąd, myśląc, że ctime jest tym, czego szukają na wielu platformach.
ntninja
2
>>>import os
>>> os.stat('feedparser.py').st_mtime
1136961142.0>>> os.stat('feedparser.py').st_ctime
1222664012.233>>>
-1: Jak wspomniano w innym miejscu, nie da ci to czasu utworzenia pliku, chyba że korzystasz z systemu Windows (którego odpowiedź nawet nie wspomina!).
ntninja
0
Jeśli podążanie za dowiązaniami symbolicznymi nie jest ważne, możesz również użyć os.lstatwbudowanego.
To da czas ostatniego czytania (przynajmniej na Unixie), co zdecydowanie nie jest tym, o co proszono.
Mark Amery
0
Warto spojrzeć na crtimebibliotekę, która implementuje międzyplatformowy dostęp do czasu tworzenia pliku.
from crtime import get_crtimes_in_dir
for fname, date in get_crtimes_in_dir(".", raise_on_error=True, as_epoch=False):print(fname, date)# file_a.py Mon Mar 18 20:51:18 CET 2019
Zdecydowanie odradzam to: używa debugfsw Linuksie, który z definicji jest niestabilny, wymaga dostępu do konta root na najwyższym poziomie i praktycznie w każdym aspekcie jest jedną z rzeczy, o których zawsze ostrzegała cię twoja matka. (Ale tak, to prawdopodobnie działa, jeśli naprawdę jesteś zdesperowany i zdarza ci się być prawdziwym superużytkownikiem w systemie bez bezpiecznego rozruchu…)
ntninja
@ntninja Prawdopodobnie nigdy nie użyję go w produkcji, ale może być przydatny do „skryptów domowych”.
Delgan
-2
os.statobejmuje czas utworzenia. Po prostu nie ma definicji st_anything dla elementu, os.stat()który zawiera czas.
Spróbuj tego:
os.stat('feedparser.py')[8]
Porównaj to ze swoją datą utworzenia w pliku w ls -lah
Źle! os.stat ('feedparser.py') [8] odnosi się do st_mtime, a nie do czasu utworzenia. Proszę zapoznać się z dokumentacją: docs.python.org/library/os.html#os.stat
millerdev
4
Proszę użyć .st_ctime zamiast brzydkich liczb [8].
guettli,
-3
Byłem w stanie uzyskać czas tworzenia na posix, uruchamiając komendę systemową statystyki i analizując dane wyjściowe.
Odpowiedzi:
Uzyskiwanie jakiejś daty modyfikacji na wiele platform jest łatwe - wystarczy zadzwonić, a otrzymasz uniksowy znacznik czasu, kiedy plik był ostatnio modyfikowany.
os.path.getmtime(path)
path
Z drugiej strony, uzyskiwanie dat utworzenia plików jest skomplikowane i zależne od platformy, różni się nawet między trzema dużymi systemami operacyjnymi:
ctime
(udokumentowany na stronie https://msdn.microsoft.com/en-us/library/14h5k7ff.aspx ) przechowuje datę jego utworzenia. Możesz uzyskać do tego dostęp w Pythonie poprzezos.path.getctime()
lub.st_ctime
atrybut wyniku połączenia zos.stat()
. To nie zadziała w systemie Unix, gdziectime
ostatni raz zmieniono atrybuty lub zawartość pliku ..st_birthtime
atrybutu wyniku połączenia zos.stat()
.W Linuksie jest to obecnie niemożliwe, przynajmniej bez napisania rozszerzenia C dla Pythona. Chociaż niektóre systemy plików powszechnie używane w systemie Linux przechowują daty utworzenia (na przykład
ext4
przechowują je wst_crtime
), jądro Linuksa nie oferuje dostępu do nich ; w szczególności struktury zwracane przezstat()
wywołania w C, od najnowszej wersji jądra, nie zawierają żadnych pól daty utworzenia . Możesz również zobaczyć, że identyfikatorst_crtime
obecnie nie występuje nigdzie w źródle Pythona . Przynajmniej jeśli jesteś włączonyext4
, dane są dołączane do i-węzłów w systemie plików, ale nie ma wygodnego sposobu dostępu do nich.Kolejną najlepszą rzeczą w Linuksie jest dostęp do pliku za
mtime
pośrednictwem jednegoos.path.getmtime()
z.st_mtime
atrybutówos.stat()
wyniku. To da ci ostatnią modyfikację zawartości pliku, co może być odpowiednie w niektórych przypadkach użycia.Podsumowując, kod dla wielu platform powinien wyglądać mniej więcej tak ...
źródło
ext4
dyskach pod Linuksem i chciałbym dowiedzieć się, co się dzieje, gdy Linux odczytuje pliki napisane przez Windows lub odwrotnie, biorąc pod uwagę, że używają onest_ctime
inaczej."w"
, nie zastępuje go, po prostu otwiera istniejący plik i obcina go. Mimo że zawartość pliku jest całkowicie niezwiązana z tym, co miał podczas tworzenia, nadal można powiedzieć, że plik został „utworzony” na długo przed bieżącą wersją. I na odwrót, redaktorzy używający zamiany atomowej podczas zapisywania (oryginalny plik jest zastępowany nowym plikiem tymczasowym w toku) wyświetlałby późniejszą datę utworzenia, nawet jeśli usunąłeś tylko jeden znak. Użyj czasu modyfikacji, nie puszczaj gruba na czas tworzenia.stat.st_ctime
jest bardziej istotne, ponieważ w wielu przypadkach czasem ostatniej zmiany metadanych może być czas utworzenia (przynajmniejctime
bliższy rzeczywistemu czasowi tworzenia niżmtime
). Dlatego możesz po prostu zastąpić swój fragmentstat = os.stat(path_to_file); try: return stat.st_birthtime; except AttributeError: return stat.st_ctime
. Co myślisz? Pozdrawiamctime
zawsze powinien być równy lub później niżmtime
, ponieważmtime
zmiana powoduje toctime
zmianę (bomtime
sam jest uważany za „metadane”). Zobacz stackoverflow.com/a/39521489/1709587, gdzie podam przykładowy kod ilustrujący to.Masz kilka możliwości. Po pierwsze możesz użyć funkcji
os.path.getmtime
ios.path.getctime
:Inną opcją jest użycie
os.stat
:Uwaga :
ctime()
nie nie odnoszą się do czasu utworzenia na systemów uniksowych, ale raczej ostatni raz dane iwęzłów zmieniło. (podziękowania dla kojiro za wyjaśnienie tego faktu w komentarzach poprzez podanie linku do interesującego posta na blogu)źródło
ctime
zostanie zaktualizowany, gdymtime
robi (ponieważmtime
jest „metadane”), a więcctime
jest zwykle zawsze równa lub przedmtime
. Traktowaniectime
jak czas „stworzony” nie ma zatem żadnego sensu. -1!Last modified: Fri Jan 31 11:08:13 2020
iCreated: Fri Jan 31 11:08:13 2020
na Linux Ubuntu 16.04!time.ctime(os.path.getmtime(file))
zwraca 2 typy ciągów, w zależności od tego, czy plik został zmodyfikowany przez system, czy przez użytkownika. Jeśli został zmodyfikowany przez system, łańcuch będzie zawierał 2 spacje między miesiącem a dniem. Nie wiem dlaczegoNajlepszą funkcją do tego celu jest os.path.getmtime () . To po prostu wykorzystuje
os.stat(filename).st_mtime
.Moduł datetime jest najlepszym manipulowaniem znacznikami czasu, więc datę modyfikacji można uzyskać jako
datetime
obiekt taki jak ten:Przykład użycia:
źródło
getmtime
jest najbliższą rzeczą dostępną w systemie Unix (gdzie uzyskanie dat utworzenia nie jest możliwe), ale zdecydowanie nie jest najlepszą funkcją do użycia w systemie Windows, gdziectime
jest czas utworzenia.os.stat https://docs.python.org/2/library/stat.html#module-stat
edit: W nowszym kodzie powinieneś prawdopodobnie użyć os.path.getmtime () (dzięki Christian Oudard),
ale zwróć uwagę, że zwraca zmiennoprzecinkową wartość time_t z ułamkiem sekund (jeśli twój system to obsługuje)
źródło
os.path.getmtime()
istnieje od czasu wydania Python 1.5.2 (patrz stare dokumenty ), wydanego zanim straciłem większość zębów mlecznych i prawie dekadę przed napisaniem oryginalnej wersji tej odpowiedzi.Istnieją dwie metody uzyskania czasu mod, os.path.getmtime () lub os.stat (), ale ctime nie jest wiarygodny na różnych platformach (patrz poniżej).
os.path.getmtime ()
getmtime ( ścieżka )
Zwraca czas ostatniej modyfikacji ścieżki. Wartość zwracana to liczba podająca liczbę sekund od epoki (patrz moduł czasu). Podnieś os.error, jeśli plik nie istnieje lub jest niedostępny. Nowości w wersji 1.5.2. Zmieniono w wersji 2.3: Jeśli os.stat_float_times () zwraca True, wynikiem jest liczba zmiennoprzecinkowa.
os.stat ()
stat ( ścieżka )
Wykonaj wywołanie systemowe stat () na podanej ścieżce. Zwracana wartość to obiekt, którego atrybuty odpowiadają elementom struktury statystyki, a mianowicie: st_mode (bity ochronne), st_ino (numer i-węzła), st_dev (urządzenie), st_nlink (liczba twardych dowiązań), st_uid (identyfikator użytkownika właściciela ), st_gid (identyfikator grupy właściciela), st_size (rozmiar pliku, w bajtach), st_atime (czas ostatniego dostępu), st_mtime (czas ostatniej modyfikacji treści), st_ctime (zależny od platformy; czas ostatniej zmiany metadanych w systemie Unix lub czas utworzenia w systemie Windows) :
W powyższym przykładzie użyjesz statinfo.st_mtime lub statinfo.st_ctime, aby uzyskać odpowiednio mtime i ctime.
źródło
W Pythonie 3.4 i nowszych można użyć zorientowanego obiektowo interfejsu modułu pathlib , który zawiera opakowania dla większości modułów systemu operacyjnego . Oto przykład pobierania statystyk plików.
Aby uzyskać więcej informacji o tym
os.stat_result
, co zawiera, zapoznaj się z dokumentacją . Dla potrzebnego czasu modyfikacjifname.stat().st_mtime
:Jeśli chcesz czas utworzenia w systemie Windows lub najnowszą zmianę metadanych w systemie Unix, możesz użyć
fname.stat().st_ctime
:Ten artykuł zawiera bardziej pomocne informacje i przykłady dotyczące modułu pathlib.
źródło
os.stat
zwraca nazwaną krotkę z atrybutamist_mtime
ist_ctime
. Czas modyfikacji jestst_mtime
na obu platformach; niestety w systemie Windowsctime
oznacza „czas utworzenia”, podczas gdy w systemie POSIX oznacza „czas zmiany”. Nie znam żadnego sposobu na uzyskanie czasu tworzenia na platformach POSIX.źródło
dir(..)
jednego. Np.dir(os.stat(os.listdir('.')[0]))
odciski
źródło
źródło
Jeśli podążanie za dowiązaniami symbolicznymi nie jest ważne, możesz również użyć
os.lstat
wbudowanego.źródło
Warto spojrzeć na
crtime
bibliotekę, która implementuje międzyplatformowy dostęp do czasu tworzenia pliku.źródło
debugfs
w Linuksie, który z definicji jest niestabilny, wymaga dostępu do konta root na najwyższym poziomie i praktycznie w każdym aspekcie jest jedną z rzeczy, o których zawsze ostrzegała cię twoja matka. (Ale tak, to prawdopodobnie działa, jeśli naprawdę jesteś zdesperowany i zdarza ci się być prawdziwym superużytkownikiem w systemie bez bezpiecznego rozruchu…)os.stat
obejmuje czas utworzenia. Po prostu nie ma definicji st_anything dla elementu,os.stat()
który zawiera czas.Spróbuj tego:
os.stat('feedparser.py')[8]
Porównaj to ze swoją datą utworzenia w pliku w ls -lah
Powinny być takie same.
źródło
Byłem w stanie uzyskać czas tworzenia na posix, uruchamiając komendę systemową statystyki i analizując dane wyjściowe.
Uruchomienie statystyki poza pythonem z terminala (OS X) zwróciło:
... gdzie czwartym czasem danych jest tworzenie pliku (zamiast czasu zmiany ctime, jak zauważono w innych komentarzach).
źródło