【问题标题】:How can I print Python's help page straight to stdout?如何将 Python 的帮助页面直接打印到标准输出?
【发布时间】:2012-03-11 20:07:09
【问题描述】:

我正在尝试编写一个 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 命令一起使用。我想知道是否有办法做到这一点,如果有,怎么做?

【问题讨论】:

  • 您要重新实现pydoc 命令吗?

标签: python unix stdout


【解决方案1】:

这对我有用:

import pydoc

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

【讨论】:

    【解决方案2】:

    试试这个?

    import pydoc
    
    pydoc.help(xrange)
    

    或者如果你想要字符串格式

    pydoc.getdoc(xrange)
    

    【讨论】:

    • 由于某种原因, pydoc.getdoc(module) 不能完全正常工作。我得到输出:str(object) -> string Return a nice string representation of the object. If the argument is a string, the return value is the same object. 而不是模块的文档。
    • pydoc.getdoc() 将引用模块,而不是包含模块名称的字符串。如果你传递一个字符串,你将获得str 类的帮助。
    猜你喜欢
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2018-02-25
    • 2020-06-25
    相关资源
    最近更新 更多