Mam szybki problem z funkcją Pythona os.path.getmtime()
. Zaobserwowałem dziwne zachowanie. Pracuję nad aplikacją internetową, która sprawdza okresowo, czy dany plik został zmodyfikowany i decyduje, czy odświeżyć w oparciu o to.python os.path.getmtime() czas się nie zmienia
W lokalnym wierszu poleceń python, po zmianie pliku i wywołaniu os.path.getmtime(file_name)
zmieniono wartość zwracaną z mtime
, aby odzwierciedlić zmianę w pliku.
Jednak, gdy zadzwonię pod numer os.path.getmtime()
w mojej aplikacji internetowej, wartość zwracana przed zmianą i po niej jest taka sama. Zrobiłem kilka badań online i znalazłem kilka rzeczy sugerujących, że moduł os musi zostać ponownie załadowany w celu zmiany pliku, który ma zostać zarejestrowany. Tak więc w mojej aplikacji internetowej przeładowałem moduł os
, ale mtime
nadal nie odzwierciedla zmian w pliku. Czy ktoś wcześniej napotkał ten problem lub zna rozwiązanie? Mam włączone poniżej fragment kodu z webapp:
import os
def function_name():
reload(os)
file_path = '/dir/lib/some_file.js'
try:
mtime = os.path.getmtime(file_path)
except os.error:
pass
return mtime
Nie, przeładowanie modułu 'os' nie ma ** nic do zrobienia z tym. –
Aa, okay. Tak, czytam w jednym z dokumentów Pythona, że 'os.environ' jest ustawiony tylko wtedy, gdy załadowany jest moduł os i myślałem, że może to mieć coś wspólnego z tym. –
'os.path.getmtime()' nie buforuje niczego. Po prostu zwraca 'os.stat (filename) .st_mtime'. 'os.stat()' nie buforuje niczego, po prostu wywołuje bibliotekę C, która prosi system operacyjny o te informacje. –