कल्पना कीजिए कि आपके पास किसी प्रकार की XML फ़ाइल या कॉन्फ़िगरेशन फ़ाइल के साथ काम करने के लिए लाइब्रेरी है। पुस्तकालय पूरी फ़ाइल को स्मृति में पढ़ता है और सामग्री को संपादित करने के तरीकों को प्रदान करता है। जब आप सामग्री को कुशल बनाते हैं तो आप सामग्री को वापस फ़ाइल में सहेजने के लिए write
पर कॉल कर सकते हैं। प्रश्न यह है कि इसे सुरक्षित तरीके से कैसे करें।फ़ाइल को सुरक्षित रूप से कैसे लिखें?
मौजूदा फ़ाइल को ओवरराइट करना (मूल फ़ाइल में लिखना शुरू करना) स्पष्ट रूप से सुरक्षित नहीं है। यदि write
विधि पूर्ण होने से पहले विफल हो जाती है तो आप आधे लिखित फ़ाइल के साथ समाप्त हो जाते हैं और आपने डेटा खो दिया है।
एक बेहतर विकल्प कहीं एक अस्थायी फ़ाइल पर लिखने में होगा, और जब write
विधि समाप्त हो गया है, तो आप मूल फ़ाइल को अस्थायी फ़ाइल की प्रतिलिपि।
अब, यदि प्रतिलिपि किसी भी तरह विफल हो जाती है, तो आपने अभी भी अस्थायी फ़ाइल में डेटा को सही ढंग से सहेजा है। और यदि प्रति सफल हो जाती है, तो आप अस्थायी फ़ाइल को हटा सकते हैं।
पॉज़िक्स सिस्टम पर मुझे लगता है कि आप rename
सिस्टम कॉल का उपयोग कर सकते हैं जो परमाणु ऑपरेशन है। लेकिन आप विंडोज सिस्टम पर यह कैसे करेंगे? विशेष रूप से, आप पायथन का उपयोग करके इस सर्वोत्तम तरीके से कैसे संभालते हैं?
इसके अलावा, फाइलों को सुरक्षित रूप से लिखने के लिए एक और योजना है?
प्रतिलिपि क्यों? नाम क्यों नहीं बदला? –