Computer >> Máy Tính >  >> Lập trình >> Python

Giao diện dòng đọc Python GNU

Dòng đọc là mô-đun cụ thể của UNIX. Nó xác định một số chức năng để đọc và ghi các tệp lịch sử theo cách dễ dàng hơn từ trình thông dịch python. Chúng tôi có thể sử dụng mô-đun này trực tiếp hoặc sử dụng rlcompleter mô-đun. Cài đặt mô-đun này có thể ảnh hưởng đến lời nhắc phương thức input () tích hợp sẵn và cả lời nhắc tương tác.

Đối với hệ thống dựa trên MAC (trên MAC OS X), dòng đọc này mô-đun có thể được triển khai bằng cách sử dụng thư viện libedit. Cấu hình libedit khác với dòng đọc GNU.

Để sử dụng mô-đun này, chúng tôi cần nhập mô-đun dòng đọc trong mã python

import readline

Một số phương pháp của GNU readline như sau -

Sr.No. Chức năng &Mô tả
1

readline.parse_and_bind (string)

Lấy một dòng từ tệp init readline và thực thi chúng sau khi phân tích cú pháp.

2

readline.get_line_buffer ()

Nhận nội dung hiện tại của bộ đệm dòng

3

readline.insert_text (string)

Chèn văn bản vào dòng lệnh

4

readline.read_init_file ([tên tệp])

Phân tích cú pháp tệp khởi tạo dòng đọc. Giá trị mặc định là giá trị được cung cấp cuối cùng.

5

readline.read_history_file ([tên tệp])

Đọc lịch sử từ tệp đã cho. Tên tệp mặc định là ~ / .history

6

readline.write_history_file ([tên tệp])

Lưu lịch sử vào tệp nhất định. Tệp mặc định là ~ / .history

7

readline.clear_history ()

Xóa lịch sử hiện tại

8

readline.get_history_length ()

Nhận độ dài tối đa của tệp lịch sử.

9

readline.set_history_length (chiều dài)

Đặt độ dài tệp lịch sử (Số dòng)

10

dòng đọc. get_current_history_length ()

Nhận tổng số dòng trong tệp lịch sử

11

readline.get_history_item (chỉ mục)

Nhận mục lịch sử bằng chỉ mục

12

readline.remove_history_item (pos)

Xóa lịch sử theo vị trí

13

readline.replace_history_item (pos, line)

Thay thế lịch sử theo vị trí

14

readline.redisplay ()

Hiển thị nội dung hiện tại của bộ đệm dòng

15

readline.get_begidx ()

Lấy chỉ mục bắt đầu của phạm vi hoàn thành tab

16

readline.get_endidx ()

Nhận chỉ mục kết thúc của phạm vi hoàn thành tab

17

readline.add_history (dòng)

Nối một dòng vào cuối bộ đệm lịch sử

Mã này được sử dụng để đọc tệp lịch sử và lưu trữ nó bên trong thư mục chính. Mã sẽ hoạt động khi nó được biên dịch và chạy ở chế độ tương tác. Sau khi thoát khỏi python shell, nó sẽ lưu trữ tệp lịch sử.

Mã mẫu

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

Chạy trong trình bao tương tác -

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