"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं पायथन का उपयोग करके रिवर्स ऑर्डर में एक बड़ी फ़ाइल को कुशलता से कैसे पढ़ सकता हूं?

मैं पायथन का उपयोग करके रिवर्स ऑर्डर में एक बड़ी फ़ाइल को कुशलता से कैसे पढ़ सकता हूं?

2025-03-22 पर पोस्ट किया गया
ब्राउज़ करें:733

] इस कार्य से निपटने के लिए एक कुशल समाधान है:

How Can I Efficiently Read a Large File in Reverse Order Using Python?

रिवर्स लाइन रीडर जनरेटर

निम्न कोड एक जनरेटर फ़ंक्शन को परिभाषित करता है, reverse_readline, जो एक फ़ाइल की रेखाओं को रिवर्स ऑर्डर में देता है। यह प्रदर्शन को अनुकूलित करने और बड़ी फ़ाइलों को प्रभावी ढंग से संभालने के लिए एक बफर-आधारित दृष्टिकोण का उपयोग करता है:

आयात ओएस REFH_READLINE (फ़ाइल नाम, BUF_SIZE = 8192) को परिभाषित करें: "" "एक जनरेटर जो रिवर्स ऑर्डर में एक फ़ाइल की लाइनें लौटाता है" "" " FH के रूप में खुले (फ़ाइल नाम, 'rb') के साथ: खंड = कोई नहीं ऑफसेट = 0 fh.seek (0, os.seek_end) file_size = billing_size = fh.tell () शेष _size> 0: ऑफसेट = मिनट (file_size, ऑफसेट buf_size) fh.seek (file_size - ऑफसेट) बफर = fh.read (min (शेष_सिज़, buf_size))) # फ़ाइल के अंतिम "\ n" को हटा दें यदि यह मौजूद है, केवल पहले बफर के लिए यदि शेष _size == file_size और बफर [-1] == ord ('\ n'): बफर = बफर [:-1] शेष _size -= buf_size लाइनें = बफर.स्लिट ('\ n'.encode ()) # इस चंक की अंतिम पंक्ति में अंतिम चंक के खंड को जोड़ें यदि खंड कोई नहीं है: लाइनें [-1] = खंड खंड = लाइनें [0] लाइनें = लाइनें [1:] # खंड को छोड़कर इस चंक में उपज लाइनें उल्टे (रेखाओं) में लाइन के लिए: # UTF-8 डिकोड त्रुटि से बचने के लिए, केवल एक पार्सड लाइन पर डिकोड करें उपज लाइन। डिसोड () # अगर फ़ाइल खाली थी तो कोई भी उपज न करें यदि खंड कोई नहीं है: उपज खंड .decode ()

प्रिंट (लाइन)

यह फ़ाइल की लाइनों को रिवर्स ऑर्डर में प्रिंट करेगा।
            
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3