কম্পিউটার টিউটোরিয়াল

পাইথন GNU readline ইন্টারফেস


readline একটি ইউনিক্স-স্পেসিফিক মডিউল। এটি পাইথন ইন্টারপ্রেটার থেকে হিস্টরি ফাইল পড়তে এবং লিখতে সহজ করার জন্য বিভিন্ন ফাংশন ডিফাইন করে। আমরা এই মডিউলটি সরাসরি বা rlcompleter মডিউল ব্যবহার করে ব্যবহার করতে পারি। এই মডিউল সেটিংস বিল্ট-ইন input() মেথড প্রম্পট এবং ইন্টারেক্টিভ প্রম্পটকেও প্রভাবিত করতে পারে।

MAC-ভিত্তিক সিস্টেমে (MAC OS X-এ) এই readline মডিউলটি libedit লাইব্রেরি ব্যবহার করে বাস্তবায়ন করা যেতে পারে। libedit কনফিগারেশন GNU readline থেকে ভিন্ন।

এই মডিউল ব্যবহার করতে হলে, আমাদের পাইথন কোডে readline মডিউল ইম্পোর্ট করতে হবে

import readline

GNU readline-এর কিছু মেথড নিচের মতো -

Sr.No.Functions & Description
1

readline.parse_and_bind(string)

readline ইনিট ফাইল থেকে একক লাইন নিন এবং পার্স করার পর এক্সিকিউট করুন।

2

readline.get_line_buffer()

লাইন বাফারের বর্তমান কন্টেন্ট পান

3

readline.insert_text(string)

কমান্ড লাইনে টেক্সট ইনসার্ট করুন

4

readline.read_init_file([filename])

একটি readline ইনিশিয়ালাইজেশন ফাইল পার্স করুন। ডিফল্ট মান শেষ প্রদান করা ভ্যালু।

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()
$

  1. পাইথনে issuperset() ফাংশন

  2. পাইথনে লো-লেভেল নেটওয়ার্কিং ইন্টারফেস (socket)

  3. পাইথনে শেল পাইপলাইন ইন্টারফেস

  4. পাইথনে GNU readline-এর জন্য কমপ্লিশন ফাংশন