मैं एक अजगर स्क्रिप्ट के बारे में 50 अलग अस्थायी फ़ाइलें, जो सभी स्क्रिप्ट के दौरान अक्सर जोड़े जाते और अंत में विलय कर रहे हैं बनाने के लिए की जरूरत है उस पर काम कर रहा हूँ। मुझे यकीन है कि tempfile
मॉड्यूल मैं क्या जरूरत है क्या कर सकते हैं, लेकिन मैं कैसे प्रलेखन पढ़ने से यह पता लगाने के लिए सक्षम नहीं किया गया है। स्क्रिप्ट अन्य फ़ाइलों की हजारों प्रक्रियाओं के रूप में इन आंकड़ों हिस्सा बड़े बड़े होते हैं, सिस्टम स्मृति के संरक्षण के लिए - के रूप में चर के लिए विरोध -कैसे पायथन के tempfile.NamedTemporaryFile (उपयोग करने के लिए)?
मैं अस्थायी फ़ाइलों का उपयोग करना चाहते।
कोड की निम्न हिस्सा हैक मैं वर्तमान में एक untemporary निर्देशिका में इन फ़ाइलों (untemporarily) बनाने के लिए उपयोग कर रहा हूँ है:
item = (string from another file) # string must id file for future use
tmpfile = 'tmpfiles/' + item
if item not in totalitems:
totalitems.add(item)
with open(tmpfile, 'w') as itemfile:
output = some stuff
tmpfile.write(output)
else:
with open(tmpfile, 'a') as itemfile:
output = different stuff
tmpfile.write(output)
मुझे लगता है कि मैं क्या जरूरत है tempfile.NamedTemporaryFile()
है। documentation के अनुसार:
वह नाम फ़ाइल ऑब्जेक्ट के नाम सदस्य से पुनर्प्राप्त किया जा सकता है।
दुर्भाग्यवश, मुझे समझ में नहीं आता कि इसका क्या अर्थ है। जब मैं प्रसंस्करण कर रहा हूं उन फ़ाइलों में फिर से मैं अपने संबंधित "आइटम" में फिर से चलाता हूं, तो मुझे बस प्रत्येक फ़ाइल को फिर से कॉल करने में सक्षम होना चाहिए। मुझे लगता है कि यह सीधे आगे है और मैं सिर्फ घना हो रहा हूँ। यदि यह मायने रखता है, तो मेरे पास पाइथन 2.7.1 और 3.2.3 दोनों के लिए इस स्क्रिप्ट के संस्करण हैं। मुझे केवल एक या दूसरे को काम करने की ज़रूरत है; मैंने दोनों सीखने के अभ्यास के रूप में बनाया है।
संभव डुप्लिकेट http://stackoverflow.com/questions/10501247/best-way- टू-उत्पन्न यादृच्छिक-फ़ाइल-नामों में अजगर) – Joe
@Joe, इस सवाल का एक हिस्सा धागा आप लिंक का डुप्लिकेट होना दिखाई देता है। इसका हिस्सा नहीं है; लेवॉन के उत्तर के नीचे टिप्पणी देखें। – Gregory
आपको इन फ़ाइलों को नामित करने की आवश्यकता क्यों है? अगर वे अनामित (पूर्व-हटाए गए) हैं, तो क्लीनअप के मामले में गलत होने के लिए कम है। आप बस tmpfile ऑब्जेक्ट को स्टोर कर सकते हैं, इसका नाम नहीं, और उसके बाद पढ़ने के लिए तैयार होने के लिए 'तलाश (0)' पर कॉल करें ... या इसकी सामग्री को mmap, या अन्यथा इसे पसंद करते हैं। –