Как я могу распечатать страницу помощи Python прямо на стандартный вывод? - PullRequest
3 голосов
/ 12 марта 2012

Я пытаюсь написать сценарий 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. (Другими словами, help работает точно так же, как и при использовании в интерпретаторе.)

Я хотел бы избавиться от буфера и распечатать его прямо на стандартный вывод, чтобы я мог использовать эту команду с другими командами Unix. Мне интересно, есть ли способ сделать это, и если да, то как?

Ответы [ 2 ]

5 голосов
/ 12 марта 2012

Это работает для меня:

import pydoc

import math # test
print(pydoc.render_doc(math))
1 голос
/ 12 марта 2012

Попробуйте это?

import pydoc

pydoc.help(xrange)

Или, если хотите, в формате строки

pydoc.getdoc(xrange)
...