Python 標準ライブラリには、プログラマーがプログラムにインポートして使用できる 200 を超えるモジュールがあります。平均的なプログラマは、これらのモジュールの多くを使用した経験があるでしょうが、まだ気づいていない有用なモジュールがいくつかある可能性があります。
これらのモジュールの多くには、さまざまな分野で非常に役立つ機能が含まれていることがわかりました。データセットの比較、他の機能との連携、音声処理はすべて Python だけを使用して自動化できます。
したがって、私はあなたが知らないかもしれない Python モジュールの候補リストを作成し、これらのいくつかのモジュールについて適切な説明を加えて、将来それらを理解して使用できるようにしました。
これらすべてのモジュールには、異なる関数とクラスがあります。あまり知られていない関数やクラスをいくつか含めました。そのため、これらのモジュールについて聞いたことがあるとしても、その側面や用途の一部は知らないかもしれません。
1.ディフリブ
difflib は、データセット、特に文字列の比較に焦点を当てた Python モジュールです。このモジュールでできることの具体的なアイデアを得るために、最も一般的な関数のいくつかを調べてみましょう。
シーケンスマッチャー
SequenceMatcher は、2 つの文字列を比較し、その類似性に基づいてデータを返す関数です。rate() を使用すると、この類似性を比率/パーセンテージの観点から定量化できます。
文法:
SequenceMatcher(None, string1, string2)
次の簡単な例は、この関数が何を行うかを示しています。
from difflib import SequenceMatcher
phrase1 = "Tandrew loves Trees."
phrase2 = "Tandrew loves to mount Trees."
similarity = SequenceMatcher(None, phrase1, phrase2)
print(similarity.ratio())
# Output: 0.8163265306122449
get_close_matches
次は get_close_matches で、引数として渡された文字列に最も近い一致を返します。
文法:
get_close_matches(word, possibilities, result_limit, min_similarity)
混乱を招く可能性のあるこれらのパラメーターについて説明します。
- word は、関数が調べるターゲットの単語です。
- possible は、関数が検索して最も近い一致を見つける一致を含む配列です。
- result_limit は、返される結果の数の制限です (オプション)。
- min_similarity は、関数による戻り値とみなされるために 2 つの単語が持つ必要のある最小の類似性です (オプション)。
その使用例を次に示します。
from difflib import get_close_matches
word = 'Tandrew'
possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew']
print(get_close_matches(word, possibilities))
# Output: ['Andrew']
これに加えて、Difflib に属する他のメソッドとクラスもいくつかあります。unified_diff、Differ、diff_bytes を参照してください。
2.予定
sched は、Windows のタスク スケジューラなどのツールとは対照的に、クロスプラットフォーム作業のためのイベント スケジューリングを中心とした便利なモジュールです。このモジュールを使用する場合、ほとんどの場合、スケジュールされたクラスを使用します。
より一般的な time モジュールは、どちらも時間とスケジュールの概念を扱うため、通常は sched と一緒に使用されます。
スケジュール インスタンスを作成します。
schedular_name = sched.schedular(time.time, time.sleep)
このインスタンスからさまざまなメソッドを呼び出すことができます。
run() が呼び出されると、スケジューラ内のイベント/エントリが順番に呼び出されます。この機能は通常、イベントがスケジュールされた後、プログラムの最後に表示されます。
enterabs() は基本的にイベントをスケジューラの内部キューに追加する関数です。いくつかのパラメータを次の順序で受け取ります。
- イベント実行時間
- アクティビティの優先順位
- イベント自体(関数)
- イベント関数パラメータ
- イベントのキーワード引数の辞書
これら 2 つの関数を一緒に使用する方法の例を次に示します。
import sched
import time
def event_notification(event_name):
print(event_name + " has started")
my_schedular = sched.scheduler(time.time, time.sleep)
closing_ceremony = my_schedular.enterabs(time.time(), 1, event_notification, ("The Closing Ceremony", ))
my_schedular.run()
# Output: The Closing Ceremony has started
sched モジュールの使用を拡張するいくつかの関数もあります: cancel()、enter()、および empty()です。
3. ビナスキー
binaascii は、バイナリと ASCII の間で変換するためのモジュールです。
b2a_base64 は、base64 データをバイナリ データに変換する binaascii モジュールのメソッドです。このアプローチの例を次に示します。
import base64
import binascii
msg = "Tandrew"
encoded = msg.encode('ascii')
base64_msg = base64.b64encode(encoded)
decode = binascii.a2b_base64(base64_msg)
print(decode)
# Output: b'Tandrew'
このコードは一目瞭然です。簡単に言えば、エンコード、base64 への変換、および b2a_base64 メソッドを使用したバイナリへの変換が含まれます。
binaascii モジュールに属する他の関数として、a2b_qp()、b2a_qp()、および a2b_uu() があります。
4. ティ
tty は、tty デバイスを操作するためのいくつかのユーティリティ関数を含むモジュールです。その 2 つの機能は次のとおりです。
- setraw() は、引数 (fd) のファイル記述子のモードを raw に変更します。
- setcbreak() は、引数 (fd) 内のファイル記述子のモードを cbreak に変更します。
上記 2 つの関数で 2 番目のパラメーター (when=termios.TCSAFLUSH) を指定するなど、termios モジュールを使用する必要があるため、このモジュールは Unix でのみ使用できます。
5. 弱い参照
weakref は、Python でオブジェクトへの弱い参照を作成するためのモジュールです。
弱い参照は、ガベージ コレクション メカニズムによる収集から特定のオブジェクトを保護しない参照です。
このモジュールに関連する 2 つの関数は次のとおりです。
- getweakrefcount() はオブジェクトをパラメータとして受け取り、そのオブジェクトを参照する弱参照の数を返します。
- getweakrefs() はオブジェクトを受け取り、そのオブジェクトを参照するすべての弱参照を含む配列を返します。
weakref とその関数の使用例:
import weakref
class Book:
def print_type(self):
print("Book")
lotr = Book
num = 1
rcount_lotr = str(weakref.getweakrefcount(lotr))
rcount_num = str(weakref.getweakrefcount(num))
rlist_lotr = str(weakref.getweakrefs(lotr))
rlist_num = str(weakref.getweakrefs(num))
print("number of weakrefs of 'lotr': " + rcount_lotr)
print("number of weakrefs of 'num': " + rcount_num)
print("Weakrefs of 'lotr': " + rlist_lotr)
print("Weakrefs of 'num': " + rlist_num)
# Output:
# number of weakrefs of 'lotr': 1
# number of weakrefs of 'num': 0
# Weakrefs of 'lotr': [<weakref at 0x10b978a90; to 'type' at #0x7fb7755069f0 (Book)>]
# Weakrefs of 'num': []
出力 出力関数の戻り値から、その動作がわかります。num には弱参照がないため、getweakrefs() によって返される配列は空です。
ここでは、weakref モジュールに関連する他の関数、ref()、proxy()、および _remove_dead_weakref() を示します。
レビュー
Difflib は、データセット、特に文字列を比較するためのモジュールです。たとえば、SequenceMatcher は 2 つの文字列を比較し、その類似性に基づいてデータを返すことができます。
sched は、スケジュール インスタンスを使用してイベント (関数の形式で) をスケジュールするために、time モジュールとともに使用される便利なツールです。たとえば、enterabs() はスケジューラの内部キューにイベントを追加します。このイベントは、run() 関数が呼び出されたときに実行されます。
binaascii は、バイナリと ASCII の間で変換してデータをエンコードおよびデコードします。b2a_base64 は、base64 データをバイナリ データに変換する binaascii モジュールのメソッドです。
tty モジュールは termios モジュールと組み合わせて使用する必要があり、tty デバイスを処理します。Unix 上でのみ動作します。
weakref は弱い参照に使用されます。その関数は、オブジェクトへの弱い参照を返したり、オブジェクトへの弱い参照の数を見つけたりすることができます。最も一般的に使用される関数の 1 つは getweakrefs() です。この関数はオブジェクトを受け取り、そのオブジェクトに含まれるすべての弱参照の配列を返します。
要点
これらの機能にはそれぞれ独自の目的があり、有用性の程度も異なります。コードを記述するときにすぐに使用できるツールの安定したライブラリを維持するには、できるだけ多くの Python 関数とモジュールを知ることが重要です。
プログラミングの専門知識のレベルに関係なく、常に学習する必要があります。もう少し時間を投資すると、より多くの価値がもたらされ、将来さらに多くの時間を節約できます。
[Pythonを独学で学びたい方のために、Python学習教材をたくさんまとめてCSDN公式にアップロードしましたので、必要な方は以下のQRコードをスキャンして入手してください]
1. 研究概要
2. 開発ツール
3.Python基礎資料
4. 実践データ