मुझे पाइथन के os.path.getmtime()
फ़ंक्शन के साथ त्वरित समस्या है। मैंने कुछ अजीब व्यवहार देखा है। मैं एक ऐसे वेब ऐप पर काम कर रहा हूं जो यह देखने के लिए समय-समय पर जांच करता है कि कोई निश्चित फ़ाइल संशोधित की गई है और यह तय करता है कि उस पर आधारित रीफ्रेश करना है या नहीं।पायथन os.path.getmtime() समय बदल नहीं रहा
मेरी स्थानीय पायथन कमांड लाइन में, जब मैं फ़ाइल बदलता हूं और os.path.getmtime(file_name)
पर कॉल करता हूं तो mtime
से वापसी मूल्य फ़ाइल में परिवर्तन को प्रतिबिंबित करने के लिए बदल गया है।
हालांकि, जब मैं अपने वेब ऐप में os.path.getmtime()
पर कॉल करता हूं तो परिवर्तन से पहले और बाद में वापसी मूल्य समान होता है। मैंने ऑनलाइन कुछ शोध किया और कुछ सामान पाया कि यह रिपोर्ट करने के लिए ओएस मॉड्यूल को फ़ाइल में बदलने के लिए पुनः लोड किया जाना चाहिए। तो, मेरे वेब ऐप में मैंने os
मॉड्यूल को फिर से लोड किया, लेकिन mtime
अभी भी फ़ाइल में बदलावों को प्रतिबिंबित नहीं करता है। समाधान से पहले या किसी और को इस समस्या का सामना करना पड़ा है? मैंने वेबपैप से नीचे एक कोड स्निपेट शामिल किया है:
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
नहीं, 'ओएस' मॉड्यूल को पुनः लोड करने के लिए ** कुछ भी नहीं है ** इसके साथ करने के लिए। –
आह, ठीक है। हाँ मैंने एक पायथन दस्तावेज़ों में से एक में पढ़ा है कि 'os.environ' केवल तभी सेट होता है जब ओएस मॉड्यूल लोड हो जाता है और मैंने सोचा कि उसके साथ कुछ करने के लिए कुछ हो सकता है। –
'os.path.getmtime()' कुछ भी कैश नहीं करता है। यह बस 'os.stat (फ़ाइल नाम) .st_mtime' देता है। 'os.stat()' कुछ भी कैश नहीं करता है, यह बस सी लाइब्रेरी में कॉल करता है, जो उस जानकारी के लिए ओएस से पूछता है। –