लक्ष्यएक बड़े पैमाने पर बाइनरी फ़ाइल लगभग आकार 1.3GB में समान मान अजगर
पढ़ना करने के लिए स्ट्रिंग में विशिष्ट अनुक्रमणिका बदल सकते हैं और कुछ बिट्स को बदलने और फिर इसे लिखने वापस एक अलग फाइल करने के लिए (मूल फ़ाइल को संशोधित नहीं कर सकते हैं)।
विधि
जब मैंने इसे हेक्स प्रारूप है जो अपरिवर्तनीय है के बाद से मैं अजगर उपयोग कर रहा हूँ में इनकोडिंग एक बड़े पैमाने पर स्ट्रिंग में संग्रहीत हो जाता है बाइनरी फ़ाइल में पढ़ा।
मेरा एल्गोरिदम पूरी फ़ाइल के माध्यम से लूप करता है और स्ट्रिंग के सभी इंडेक्स को संशोधित करने की आवश्यकता वाले सूची में स्टोर करता है। पकड़ यह है कि स्ट्रिंग में सभी इंडेक्स को उसी मान में संशोधित करने की आवश्यकता है। अपरिवर्तनीय प्रकृति के कारण मैं इसे जगह में नहीं कर सकता। मैं इसे वर्णों की सूची में परिवर्तित नहीं कर सकता क्योंकि यह मेरी स्मृति बाधाओं को उड़ाता है और बहुत समय लगता है। करने के लिए व्यवहार्य चीज इसे एक अलग स्ट्रिंग में स्टोर करना है, लेकिन अपरिवर्तनीय प्रकृति के कारण मुझे स्ट्रिंग ऑब्जेक्ट्स का एक टन बनाना है और उन्हें संयोजित करना है।
मैंने https://waymoot.org/home/python_string/ से कुछ विचारों का उपयोग किया, हालांकि यह मुझे अच्छा प्रदर्शन नहीं देता है। किसी भी विचार, लक्ष्य सूचकांक सूची में मूल्यों द्वारा निर्धारित कुछ प्लेसहोल्डर्स को छोड़कर मौजूदा सुपर लंबी स्ट्रिंग को बिल्कुल दूसरे में कॉपी करना है?
प्रतिस्थापन मूल के समान आकार हैं? इसलिए आप फ़ाइल की स्थिति खोज सकते हैं और डिस्क पर जगह पर लिख सकते हैं। –
आप कहते हैं "इसे वापस लिखना", लेकिन मेरे उत्तर में टिप्पणी में कहा गया है कि "बाधा मूल फ़ाइल को नहीं बदलना है"। यह एक विरोधाभास है। –
प्रश्न संपादित- अस्पष्टता –