readline यूनिक्स-विशिष्ट मॉड्यूल है। यह पायथन इंटरप्रेटर से हिस्ट्री फाइल्स को आसान तरीके से पढ़ने और लिखने के लिए कई फंक्शन्स को परिभाषित करता है। हम इस मॉड्यूल का उपयोग सीधे या rlcompleter मॉड्यूल का उपयोग करके कर सकते हैं। इस मॉड्यूल की सेटिंग्स बिल्ट-इन input() मेथड प्रॉम्प्ट और इंटरैक्टिव प्रॉम्प्ट को भी प्रभावित कर सकती हैं।
MAC-आधारित सिस्टम (MAC OS X पर) के लिए यह readline मॉड्यूल libedit लाइब्रेरी का उपयोग करके लागू किया जा सकता है। libedit कॉन्फिगरेशन GNU रीडलाइन से अलग है।
इस मॉड्यूल का उपयोग करने के लिए, हमें पायथन कोड में readline मॉड्यूल आयात करने की आवश्यकता है।
import readline
GNU रीडलाइन के कुछ मेथड्स इस प्रकार हैं:
| Sr.No. | फंक्शन्स और विवरण |
|---|---|
| 1 | readline.parse_and_bind(string) रीडलाइन इनिट फाइल से सिंगल लाइन लें और पार्स करने के बाद उन्हें एक्जीक्यूट करें। |
| 2 | readline.get_line_buffer() लाइन बफर की वर्तमान सामग्री प्राप्त करें |
| 3 | readline.insert_text(string) कमांड लाइन में टेक्स्ट डालें |
| 4 | readline.read_init_file([filename]) रीडलाइन इनिशियलाइजेशन फाइल पार्स करें। डिफ़ॉल्ट मान अंतिम प्रदान किया गया मान है। |
| 5 | readline.read_history_file([filename]) दिए गए फाइल से हिस्ट्री पढ़ें। डिफ़ॉल्ट फाइलनाम ~/.history है |
| 6 | readline.write_history_file([filename]) दिए गए फाइल में हिस्ट्री सेव करें। डिफ़ॉल्ट फाइल ~/.history है |
| 7 | readline.clear_history() वर्तमान हिस्ट्री क्लियर करें |
| 8 | readline.get_history_length() हिस्ट्री फाइल की अधिकतम लंबाई प्राप्त करें। |
| 9 | readline.set_history_length(length) हिस्ट्री फाइल लंबाई सेट करें (लाइनों की संख्या) |
| 10 | readline.get_current_history_length() हिस्ट्री फाइल में कुल लाइनों की संख्या प्राप्त करें |
| 11 | readline.get_history_item(index) इंडेक्स का उपयोग करके हिस्ट्री आइटम प्राप्त करें |
| 12 | readline.remove_history_item(pos) पोजीशन द्वारा हिस्ट्री हटाएं |
| 13 | readline.replace_history_item(pos, line) पोजीशन द्वारा हिस्ट्री रिप्लेस करें |
| 14 | readline.redisplay() लाइन बफर की वर्तमान सामग्री दिखाएं |
| 15 | readline.get_begidx() टैब-कम्प्लीशन स्कोप का शुरुआती इंडेक्स प्राप्त करें |
| 16 | readline.get_endidx() टैब-कम्प्लीशन स्कोप का अंतिम इंडेक्स प्राप्त करें |
| 17 | readline.add_history(line) हिस्ट्री बफर के अंत में एक लाइन जोड़ें |
यह कोड हिस्ट्री फाइल को पढ़ने और इसे होम डायरेक्टरी में स्टोर करने के लिए उपयोग किया जाता है। कोड तब काम करेगा जब इसे इंटरैक्टिव मोड में कंपाइल और रन किया जाए। पायथन शेल से बाहर निकलने के बाद, यह हिस्ट्री फाइल स्टोर करेगा।
उदाहरण कोड
import readline as rl
import os
import atexit
my_hist_file = os.path.join(os.path.expanduser("~"), ".my_python_hist")
try:
rl.read_history_file(my_hist_file)
rl.clear_history()
except FileNotFoundError:
pass
print("Done")
atexit.register(rl.write_history_file, my_hist_file)
del os, my_hist_file
इंटरैक्टिव शेल में चलाएं:
$ python3
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exec(open("./readline_task.py").read())
Done
>>> print("readline_task.py is ececuted")
readline_task.py is ececuted
>>> print("History File will be updated after exit.")
History File will be updated after exit.
>>> 2 ** 10
1024
>>> 2 ** 20
1048576
>>> 2 ** 30
1073741824
>>> import math
>>> math.factorial(6)
720
>>> exit()
$ cat ~/.my_python_hist
print("readline_task.py is ececuted")
print("History File will be updated after exit.")
2 ** 10
2 ** 20
2 ** 30
import math
math.factorial(6)
exit()
$