如何在Python中获取手册页的内容?

即时通讯运行Linux,我想导入一些手册页到我的应用程序。

我想出了这个:

p = subprocess.Popen(('man %s' % manTopic,), shell = True, stdout = subprocess.PIPE) stdout, stderr = p.communicate() if stdout: 

但它不好,男只显示第一页,阻止我的申请

我如何获得Python的手册页?

Solutions Collecting From Web of "如何在Python中获取手册页的内容?"

尝试:

 p = subprocess.Popen(('man -P cat %s' % manTopic,), shell = True) stdout, stderr = p.communicate() if stdout: 

相反 – “-P”选项覆盖“man”命令使用的寻呼机程序。

您可以使用check_output获取命令的整个输出。 此外,使用shell不是必需的,甚至可能使您的应用程序容易受到shell注入攻击 ,并且强烈不鼓励 。

 import subprocess pagename = 'man' manpage = subprocess.check_output(['man', pagename]) 

请注意,使用man将输出格式化为终端。 如果你想让它的格式不同,你将不得不

  • 调用man -w <name>获取联机帮助页的位置,
  • 大概解压手册页,
  • 使用-T选项将其馈送到groff ,以选择所需的输出类型。

在调用groff ,不要忘记加载正确的宏。

在FreeBSD上,我倾向于使用groff -Tlatin1 -mandoc <file>来获取文本输出。