मुझे यकीन है कि वहां है, क्योंकि मैं भी चलाने वाली स्क्रिप्ट की स्रोत फ़ाइलों से संपादित/पढ़ने में सक्षम हूं, लेकिन सबसे बड़ी समस्या शायद सभी स्थानांतरण हो जाएगी जो आपको किया जाएगा फ़ाइल की शुरुआत में शुरू किया। दूसरी तरफ, यदि आप फ़ाइल के माध्यम से जाते हैं और लाइनों की सभी शुरुआती स्थितियों को रिकॉर्ड करते हैं, तो आप लाइनों की प्रतिलिपि बनाने के लिए स्थिति के विपरीत क्रम में जा सकते हैं; एक बार ऐसा करने के बाद, आप वापस जा सकते हैं, नई फाइलें ले सकते हैं, एक समय में, और (यदि वे पर्याप्त छोटे हैं), सूची बनाने के लिए रीडलाइन() का उपयोग करें, सूची के क्रम को उलट दें, फिर शुरुआत की तलाश करें फ़ाइल के और अपने पुराने क्रम में लाइनों को उनके पुराने क्रम में लाइनों के साथ ओवरराइट करें।
(truncate()
विधि का उपयोग करके आप अंत में लाइनों के पहले ब्लॉक को पढ़ने के बाद फ़ाइल को छोटा कर देंगे, जो फ़ाइल फ़ाइल ऑब्जेक्ट के अलावा किसी भी तर्क के बिना उपयोग की जाने वाली वर्तमान फ़ाइल स्थिति से पहले सभी डेटा को मिटा देता है, आपको लगता है कि ' अपनी फ़ाइल को पढ़ने के लिए io
पैकेज से कक्षाओं में से किसी एक वर्ग या उप-वर्ग का उपयोग कर रहे हैं। आपको केवल यह सुनिश्चित करना होगा कि वर्तमान फ़ाइल स्थिति अंतिम पंक्ति की शुरुआत में समाप्त होने के लिए समाप्त हो नई फाइल।)
संपादित करें: उचित समापन टैग पर अलगाव करने के बारे में आपकी टिप्पणी के आधार पर, आपको शायद ऐसे टैग का पता लगाने के लिए एल्गोरिदम विकसित करना होगा (शायद peek
विधि का उपयोग करके) नियमित अभिव्यक्ति का उपयोग करना।
क्षमा करें, मैं इसके बारे में क्या है नहीं मिलता है । –
अगर मैं गलत हूं तो मुझे सही करें, लेकिन वह छोटी भागों में एक बहुत बड़ी फ़ाइल को विभाजित करने की कोशिश कर रहा है। हालांकि, चूंकि फ़ाइल इतनी बड़ी है, क्योंकि वह विभाजन बनाता है, उसे अंतरिक्ष को बचाने के लिए मूल फ़ाइल से उस हिस्से को हटाना होगा। –
@ जेसे - यह सही है। – AlbertoPL