यह NTFS फ़ाइल सिस्टम पर काम करना चाहिए पर ऐसा कर रहा हूँ, क्योंकि वे समर्थन sparse files। यह लगभग तात्कालिक है।
with open("file.to.create", "w") as file:
file.truncate(10 ** 10)
फ़ाइल appearantly \ x00 बाइट्स से भर दिया जाएगा, लेकिन उन तथ्य सिर्फ जरूरत के रूप में जब आप फ़ाइल से पढ़ने बनाई में हैं। यह लगभग कोई डिस्क स्थान का उपयोग नहीं करता है (हालांकि यह देख सकता है जैसे यह बहुत शुरुआत से सभी 10 जीबी का उपयोग करता है - मुझे विंडोज़ में वास्तविक फ़ाइल आकार की जांच करने का कोई आसान तरीका नहीं मिला है), और जब आप आवश्यक ब्लॉक आवंटित करते हैं तो बढ़ता है इसे लिखो। AFAIK एक स्पैस फ़ाइल बनाने के लिए काफी संभव है जो कि डिस्क पर रहता है उससे काफी बड़ा है, हालांकि यह बाद में परेशानी का कारण बन सकता है। :)
सावधान: यदि आप एक विरल फ़ाइल की प्रतिलिपि, यह प्रक्रिया में एक गैर स्पार्स फ़ाइल का विस्तार ("नकली" \ x00 बाइट्स पढ़ा है, लिखने असली \ x00 बाइट्स) हो सकता है। यह इस तथ्य का एक परिणाम है कि को "पिछड़ा संगत" होने के लिए शून्य बाइट्स के साथ सामान्य 10 जीबी फ़ाइल की तरह दिखता है - अलग-अलग चेक इसे एक स्पैस फ़ाइल के रूप में प्रकट करने के लिए किया जाना चाहिए। सफलतापूर्वक स्पार्स फ़ाइल को कॉपी करें और स्पार्स फ़ाइल रखने के लिए, दो शर्तें पूरी होनी चाहिए:
कॉपी करने के लिए यह स्पार्स फ़ाइलों के "पता" होना चाहिए इस्तेमाल किया उपकरण
- , और
- फाइल सिस्टम इसे करने के लिए नकल की जाती है स्पार्स फ़ाइलों
उदाहरण के लिए समर्थन करना चाहिए, यूएसबी thumbdrives/कलम डिफ़ॉल्ट रूप से पुराने FAT फाइल सिस्टम के साथ स्वरूपित हैं, और यह नहीं समर्थन स्पार्स फ़ाइलों करता है। परीक्षण से, प्रतिलिपि करते समय Windows XP का एक्सप्लोरर स्पैस फ़ाइलों को संरक्षित नहीं करता है। This tip सुझाव देता है Robocopy नौकरी पर निर्भर है, लेकिन मैंने इसका परीक्षण नहीं किया है।
स्रोत
2011-06-27 19:18:26
@GWW: ओपी ने पाइथन समाधान के लिए कहा, इसलिए यह एक डुप्लिकेट नहीं है। –
डुप्लिकेट नहीं है क्योंकि यह स्पष्ट रूप से एक पायथन प्रश्न है जबकि दूसरा एक सामान्य प्रश्न की तरह है जो शेल उत्तर प्राप्त कर रहा है। –
@ निक डंडौलाकिस: प्रश्न – GWW