 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Python GNU readline Interface
The readline is UNIX specific module. It defines a number of functions to read and write history files in easier way from python interpreter. We can use this module directly or using the rlcompleter module. This module settings may affect the built-in input() method prompt and also the interactive prompt.
For the MAC based system (on MAC OS X) this readline module can be implemented using the libedit library. The libedit configuration is different from GNU readline.
To use this module, we need to import the readline module in the python code
import readline
Some methods of GNU readline are as follows −
| Sr.No. | Functions & Description | 
|---|---|
| 1 | readline.parse_and_bind(string) Take single line from readline init file and execute them after parsing. | 
| 2 | readline.get_line_buffer() Get the current content of the line buffer | 
| 3 | readline.insert_text(string) Insert text to the command line | 
| 4 | readline.read_init_file([filename]) Parse a readline initialization file. Default value is the last provided value. | 
| 5 | readline.read_history_file([filename]) Read history from given file. Default filename is ~/.history | 
| 6 | readline.write_history_file([filename]) Save the history into the given file. Default file is ~/.history | 
| 7 | readline.clear_history() Clear the current history | 
| 8 | readline.get_history_length() Get the maximum length of the history file. | 
| 9 | readline.set_history_length(length) Set the history file length (Number of lines) | 
| 10 | readline. get_current_history_length () Get the total number of lines in the history file | 
| 11 | readline.get_history_item(index) Get history item using index | 
| 12 | readline.remove_history_item(pos) Remove history by position | 
| 13 | readline.replace_history_item(pos, line) Replace history by position | 
| 14 | readline.redisplay() Show the current content of the line buffer | 
| 15 | readline.get_begidx() Getting the starting index of tab-completion scope | 
| 16 | readline.get_endidx() Getting the ending index of tab-completion scope | 
| 17 | readline.add_history(line) Append one line at the end of the history buffer | 
This code is used to read the history file and store it inside the home directory. The code will work when it is compiled and run in interactive mode. After exiting the python shell, it will store the history file.
Example Code
 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  Run in interactive shell −
 $ 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() $ 