2012-03-11 13 views
3

私は与えられたモジュールのPythonヘルプページを印刷できるUnixスクリプトを書こうとしています。私のコードは、これまで以下の通りです:Pythonのヘルプページを標準出力に直接印刷するにはどうすればよいですか?

#!/usr/bin/env python 

if __name__ == "__main__": 
    import sys 
    if sys.argv[1].endswith(".py"): 
     __import__(sys.argv[1][:-3]) 
     help(sys.argv[1][:-3]) 
    else: 
     __import__(sys.argv[1]) 
     help(sys.argv[1]) 

それは、lessを呼び出すのと同様のバッファ内のヘルプページをプルアップ、私はモジュール上でそれを起動want--ほぼそのまま動作します。 (言い換えれば、helpは、インタプリタで使用するときとまったく同じように動作します)。

私が望むのは、コマンド。私はこれを行う方法があるのだろうかと思っています、もしそうなら、どうですか?

+2

は、あなたが再実装しようとしているもの 'pydoc'コマンドですか? –

答えて

5

文字列形式でそれをしたい場合、これが私の作品:

import pydoc 

import math # test 
print(pydoc.render_doc(math)) 
1

お試しください。

import pydoc 

pydoc.help(xrange) 

それとも、

pydoc.getdoc(xrange) 
+0

何らかの理由で、pydoc.getdoc(module)が正確に動作しません。 'str(object) - > string オブジェクトの素敵な文字列表現を返します。 引数が文字列の場合、戻り値は同じオブジェクトです。モジュールのドキュメントの代わりに。 –

+0

'pydoc.getdoc()'は、モジュールの名前を含む文字列ではなく、モジュールを参照します。文字列を渡すと、 'str'クラスのヘルプが得られます。 – kindall

関連する問題