मुझे एक बड़ी फाइल पढ़ने की जरूरत है, लाइन बाय लाइन। कहते हैं कि फ़ाइल में 5GB से अधिक है और मुझे प्रत्येक पंक्ति पढ़ने की आवश्यकता है, लेकिन जाहिर है कि मैं readlines()इसका उपयोग नहीं करना चाहता क्योंकि यह मेमोरी में एक बहुत बड़ी सूची बनाएगा।
नीचे दिया गया कोड इस मामले के लिए कैसे काम करेगा? क्या xreadlinesस्मृति में एक-एक करके ही पढ़ा जा रहा है? क्या जनरेटर अभिव्यक्ति की आवश्यकता है?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
इसके अलावा, मैं लिनक्स tailकमांड की तरह इसे रिवर्स ऑर्डर में पढ़ने के लिए क्या कर सकता हूं ?
मुझे मिला:
http://code.google.com/p/pytailer/
तथा
" अजगर का सिर, पूंछ और पीछे की ओर एक पाठ फ़ाइल की पंक्तियों द्वारा पढ़ा गया "
दोनों ने बहुत अच्छा काम किया!