Python की स्टैंडर्ड लाइब्रेरी में linecache मॉड्यूल का उद्देश्य किसी भी टेक्स्ट फ़ाइल तक रैंडम एक्सेस की सुविधा प्रदान करना है, हालांकि इस मॉड्यूल का व्यापक रूप से Python के traceback मॉड्यूल द्वारा एरर ट्रेस स्टैक उत्पन्न करने के लिए उपयोग किया जाता है। पढ़ने के प्रिटीप्रिंट्स को कैश में रखा जाता है ताकि बार-बार लाइन्स पढ़ते समय समय बचे।
इस मॉड्यूल में सबसे महत्वपूर्ण फ़ंक्शन getline() है जो दी गई फ़ाइल से निर्दिष्ट लाइन नंबर पढ़ता है। फ़ंक्शन्स की सूची निम्न है:
getline(file, x)
यह फ़ंक्शन फ़ाइल से xवीं लाइन लौटाता है। यदि मौजूद नहीं है तो खाली स्ट्रिंग लौटाता है। यदि फ़ाइल करंट पथ में मौजूद नहीं है, तो फ़ंक्शन इसे sys.path में डायरेक्टरीज़ में ढूंढने का प्रयास करता है - मॉड्यूल सर्च पथ।
clearcache()
यदि पिछले getline() फ़ंक्शन का प्रिटीप्रिंट अब आवश्यक नहीं है, तो आप इस फ़ंक्शन द्वारा कैश को क्लियर कर सकते हैं।
checkcache()
यह फ़ंक्शन जांचता है कि कैश वैध है या नहीं। यह उपयोगी है यदि कैश में फ़ाइलें डिस्क पर बदल गई हों।
lazycache()
मॉड्यूल_ग्लोबल्स के साथ फ़ाइलनाम के लिए कैश को सीड करें। मॉड्यूल लोडर से स्रोत केवल तब मांगा जाएगा जब getlines कॉल किया जाए, तुरंत नहीं।
getlines()
यह फ़ंक्शन फ़ाइल से लाइन्स को लिस्ट ऑब्जेक्ट के रूप में लौटाता है।
updatecache()
यह फ़ंक्शन कैश एंट्रीज़ को अपडेट करता है और लाइन्स की सूची लौटाता है।
linecache कार्यक्षमता के उपयोग को प्रदर्शित करने के लिए, पहले हम प्रसिद्ध Zen of Python (सॉफ्टवेयर सिद्धांतों की सूची जो Python के डिज़ाइन दर्शन को प्रभावित करती है) को स्टोर करने के लिए एक टेक्स्ट फ़ाइल बनाते हैं। 'import this' का आउटपुट निम्न कोड द्वारा zen.txt में रीडायरेक्ट किया जाता है:
import sys, io
zen = io.StringIO()
old_stdout = sys.stdout
sys.stdout = zen
import this
sys.stdout = old_stdout
f = open('zen.txt', 'w')
f.write(zen.getvalue())
f.close()
जब उपरोक्त कोड निष्पादित होता है, तो zen.txt करंट डायरेक्टरी में बन जाएगी। हम इस टेक्स्ट फ़ाइल का उपयोग getline() फ़ंक्शन से लाइन्स पढ़ने के लिए करेंगे।
फ़ाइल से 4वीं लाइन पढ़ने के लिए:
>>> linecache.getline('zen.txt', 4)
'Explicit is better than implicit.\n'
ध्यान दें कि रिटर्न स्ट्रिंग न्यूलाइन कैरेक्टर के साथ समाप्त होती है।
4 से 10 तक की लाइन नंबर्स प्रदर्शित करने के लिए, getlines() फ़ंक्शन द्वारा लौटाई गई लिस्ट पर स्लाइस ऑपरेटर का उपयोग करें:
>>> linecache.getlines('zen.txt')[4:10]
['Simple is better than complex.\n',
'Complex is better than complicated.\n',
'Flat is better than nested.\n',
'Sparse is better than dense.\n',
'Readability counts.\n',
"Special cases aren't special enough to break the rules.\n"]
इस लेख में हमने Python स्टैंडर्ड लाइब्रेरी में linecache मॉड्यूल के बारे में सीखा।