2011-05-25 18 views
6

मुझे एक temp निर्देशिका बनाने की आवश्यकता है जो एक और नामित निर्देशिका और सबफ़ाइल रखेगी। अंत में नामित निर्देशिका और सबफाइल को टैरबॉल में जोड़ा जाएगा और अस्थायी निर्देशिका को हटाया जा सकता है। शुरुआत में mkdtemp का उपयोग करने जा रहा था, लेकिन ऐसा लगता है कि अस्थायी डायरेक्टरी विधि स्वयं को हटा देती है? क्या कोई मतभेदों को समझा सकता है।पायथन: tempfile.mkdtemp और tempfile के बीच अंतर। समकालीन डायरेक्टरी

+2

दस्तावेज़ों की अंतिम वाक्य बहुत स्पष्ट है –

उत्तर

5

आप सही हैं कि केवल वास्तविक अंतर यह है कि TemporaryDirectory इसे पूरा होने पर ही हटा देगा। यह आप की तरह कुछ करने देंगे:

with tempfile.TemporaryDirectory() as dir: 
    do_stuff_with(dir) 

जब आप with के दायरे छोड़ देते हैं, अस्थायी निर्देशिका हटा दिया जाएगा। mkdtemp के साथ, आपको इसे मैन्युअल रूप से करने की आवश्यकता होगी।

3
tempfile.TemporaryFile() के प्रलेखन से

:

यह समारोह एक अस्थायी निर्देशिका का उपयोग mkdtemp() ( आपूर्ति तर्क सीधे अंतर्निहित कार्य करने के लिए पारित कर रहे हैं) पैदा करता है। परिणामी ऑब्जेक्ट को संदर्भ प्रबंधक के रूप में उपयोग किया जा सकता है (स्टेटमेंट संदर्भ प्रबंधक के साथ देखें)। के संदर्भ पर (या अस्थायी निर्देशिका ऑब्जेक्ट का विनाश), नए ने अस्थायी निर्देशिका बनाई और सभी इसकी सामग्री फाइल सिस्टम से हटा दी गई है।

+0

यदि आप अंतिम वाक्य नहीं पढ़ेंगे तो मुझे नीचे छोड़ने के लिए स्वतंत्र महसूस करें। अंतिम वाक्य पूछे जाने वाले प्रश्न को स्पष्ट रूप से बताता है। –

+0

मुझे एसओ पंजीकरण के दौरान किसी भी उपयोगकर्ता आवश्यकताओं को पढ़ना याद नहीं है, जिसके लिए मुझे प्रोग्रामिंग या विकास के साथ प्रवीणता का एक निश्चित स्तर होना चाहिए। हम सभी जीवित रहने के लिए ऐसा नहीं करते हैं और न ही इसे माना जाना चाहिए। मैं केवल किसी को यह बताने के लिए कह रहा हूं कि कुछ लोगों को "स्पष्ट रूप से" दस्तावेज किया गया है। – CarpeNoctem

+0

बताएं कि अंतिम वाक्य में क्या स्पष्ट नहीं है .... फिर हम फिर से बात कर सकते हैं –

संबंधित मुद्दे