Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonGNUreadlineインターフェース


リードライン UNIX固有のモジュールです。 Pythonインタープリターから簡単な方法で履歴ファイルを読み書きするための多くの関数を定義します。このモジュールは直接使用することも、 rlcompleterを使用して使用することもできます。 モジュール。このモジュール設定は、組み込みのinput()メソッドプロンプトとインタラクティブプロンプトに影響を与える可能性があります。

MACベースのシステム(MAC OS X上)の場合、この readline モジュールは、libeditライブラリを使用して実装できます。 libeditの構成はGNUreadlineとは異なります。

このモジュールを使用するには、Pythonコードでreadlineモジュールをインポートする必要があります

import readline

GNUreadlineのいくつかの方法は次のとおりです-

Sr.No。 機能と説明
1

readline.parse_and_bind(string)

readline initファイルから1行を取得し、解析後に実行します。

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)

履歴バッファの最後に1行追加します

このコードは、履歴ファイルを読み取り、ホームディレクトリ内に保存するために使用されます。コードは、コンパイルしてインタラクティブモードで実行すると機能します。 Pythonシェルを終了すると、履歴ファイルが保存されます。

サンプルコード

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. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',

  2. Pythonの低レベルネットワークインターフェース(ソケット)

    Pythonの標準ライブラリの「socket」モジュールは、サーバーとクライアントマシンがオペレーティングシステム上でソケットエンドポイントを使用して通信する方法を定義します。 socket APIには、コネクション型ネットワークプロトコルとコネクションレス型ネットワークプロトコルの両方の関数が含まれています。 ソケットは、双方向通信リンクのエンドポイントです。 IPアドレスとポート番号が特徴です。接続を開始するには、両端のソケットを適切に構成する必要があります。これにより、着信メッセージをリッスンし、クライアントサーバー環境で応答を送信できるようになります。 socketモジュールのso