Ho un problema rapido con la funzione python os.path.getmtime()
. Ho osservato alcuni comportamenti strani. Sto lavorando a un'app Web che controlla periodicamente per vedere se un certo file è stato modificato e decide se aggiornarlo in base a ciò.python os.path.getmtime() ora non cambia
Nella mia riga di comando python locale, quando cambio il file e chiamo os.path.getmtime(file_name)
il valore restituito da mtime
è stato modificato per riflettere la modifica nel file.
Tuttavia, quando chiamo os.path.getmtime()
nella mia app Web, il valore restituito prima e dopo la modifica è lo stesso. Ho fatto qualche ricerca online e ho trovato alcune cose per suggerire che il modulo os deve essere ricaricato per la modifica del file da registrare. Quindi, nella mia app Web ho ricaricato il modulo os
, ma mtime
non riflette ancora le modifiche al file. Qualcun altro ha già riscontrato questo problema o conosce una soluzione? Ho incluso un frammento di codice di seguito dalla 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
No, ricaricare il modulo 'os' ha ** ** nulla a che fare con questo. –
Aah, ok. Sì, ho letto in uno dei documenti python che 'os.environ' è impostato solo quando il modulo os è caricato e ho pensato che potesse avere qualcosa a che fare con quello. –
'os.path.getmtime()' non memorizza nella cache nulla. Restituisce semplicemente 'os.stat (filename) .st_mtime'. 'os.stat()' non memorizza nulla nella cache, chiama semplicemente nella libreria C, che chiede al sistema operativo per tali informazioni. –