7

インタプリタからモジュールと関数のドキュメント文字列のキーワード検索を実行する方法はありますか?

多くの場合、Python で何かをしたいとき、自分がやりたいことを実行するモジュールがあることは知っていますが、それが何と呼ばれているかはわかりません。Google "python do X"を使わずに"X を行う関数またはモジュールの名前"を検索する方法が欲しいです。

「URL を開くにはどうすればよいか」の例を考えてみましょう。Linux シェルでは、試してみるかもしれません>> apropos open url。MATLAB の下では、試してみるかもしれません>> lookup open url。これらはどちらも、man ページまたはドキュメント文字列のどこかに「open」および「URL」という単語を含む関数またはモジュールのリストを表示します。例えば:

urllib.urlopen   : Create a file-like object for the specified URL to read from.
urllib2.urlopen  : ...
...

import現在のセッションに追加されたモジュールだけでなく、インストールされているすべてのモジュールを検索するものが欲しいです。

はい、Google は Python のドキュメント文字列を検索する優れた方法ですが、待ち時間が少し長くなります。;)

4

2 に答える 2

7

そのための組み込みサポートは次のpydoc.aproposとおりです。

import pydoc
pydoc.apropos('Zip')
# output: zipimport - zipimport provides support for importing Python modules from Zip archives.

ご覧のとおり、これはほとんど役に立ちません。また、モジュールをインポートできない場合は常に動作を停止します。これは、パッケージ管理スタイルによっては「常に」を意味する場合があります。

私が使用していないが有望に見える代替手段はapropos.pyです。

Python の深く、汚い、そして徹底的な「適切」。system.path 内のすべてのライブラリをクロールし、クエリ文字列をすべてのモジュール名、クラス、関数、メソッド名、および最上位モジュールの docstring と照合します。

使用法: ./apropos.py

このモジュールは、PyDoc の apropos メソッドの制限により作成されました。このメソッドは、最上位モジュールの 1 つをインポートできない場合に失敗します。また、ネイティブの apropos メソッドは、このモジュールが行う docstring やディープ モジュール名をクロールしません。

于 2012-05-18T20:02:14.350 に答える
1

次のコマンドを使用します。

pydoc -k
于 2012-06-09T11:42:34.117 に答える