我正在尝试编写一个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
与在解释器中使用它时的工作方式完全相同。)
我想要的是摆脱缓冲区并直接打印到stdout,以便我可以将命令与其他Unix命令一起使用。我想知道是否有办法做到这一点,如果有,怎么做?
答案 0 :(得分:5)
这对我有用:
import pydoc
import math # test
print(pydoc.render_doc(math))
答案 1 :(得分:1)
试试这个?
import pydoc
pydoc.help(xrange)
或者如果你想要它的字符串格式
pydoc.getdoc(xrange)