में वास्तविक फ़ाइल बनाने के बिना अस्थायी फ़ाइल नाम जेनरेट करें प्रश्न, number 10501247, स्टैक ओवरफ्लो में, पाइथन में अस्थायी फ़ाइल बनाने का उत्तर देता है।
मुझे केवल मेरे मामले में अस्थायी फ़ाइल नाम होना चाहिए।
कॉलिंग tempfile.NamedTemporaryFile() वास्तविक फ़ाइल निर्माण के बाद फ़ाइल हैंडल देता है।
क्या फ़ाइल नाम केवल पाने का कोई तरीका है?पाइथन
# Trying to get temp file path
tf = tempfile.NamedTemporaryFile()
temp_file_name = tf.name
tf.close()
# Here is my real purpose to get the temp_file_name
f = gzip.open(temp_file_name ,'wb')
...
'नामांकित समकालीन फ़ाइल 'एक अद्वितीय नाम की गारंटी देता है, (शायद) इसे आजमाकर और यदि यह मौजूद है तो पुनः प्रयास कर रहा है। सिर्फ एक नाम प्राप्त करने से यह गारंटी नहीं मिलेगी कि आप वास्तव में बाद में फ़ाइल बना सकते हैं, आप किसी भी अन्य नाम की दौड़ स्थिति को आपके सामने एक ही नाम का उपयोग कर खोल रहे हैं। –
@ जोचिम ट्रू, यहां एक दौड़ की स्थिति है और इसे टालना पसंद किया जाएगा। हालांकि, कभी-कभी आपको एक फ़ंक्शन में एक अस्थायी फ़ाइल नाम पारित करना होता है (फ़ाइल को आंतरिक रूप से हो रहा है।) अच्छी तरह से यादृच्छिक नाम होने से एक बेहतर संभावना है कि दौड़ की स्थिति एक गैर-समस्या होगी। मुझे लगता है कि दौड़ की स्थिति विफलता के मौके को कम करने के लिए एक अच्छा अस्थायी फ़ाइल नाम प्रदान करने की वैध आवश्यकता है। निश्चित रूप से चल रही प्रक्रिया और कार्य के आधार पर एक अच्छा उपसर्ग और प्रत्यय जोड़ना टकराव का भी कम मौका प्रदान करेगा। – PolyMesh