我正在运行 linux,我想将一些手册页导入我的应用程序。
我想出了这个:
p = subprocess.Popen(('man %s' % manTopic,), shell = True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
if stdout:
但它不好,男人只显示第一页并阻止我的应用程序
如何使用 Python 获取手册页?
我正在运行 linux,我想将一些手册页导入我的应用程序。
我想出了这个:
p = subprocess.Popen(('man %s' % manTopic,), shell = True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
if stdout:
但它不好,男人只显示第一页并阻止我的应用程序
如何使用 Python 获取手册页?
您可以使用 获取命令的全部输出check_output
。此外,使用 shell 不是必需的,甚至可能使您的应用程序容易受到shell 注入攻击,因此强烈建议不要使用。
import subprocess
pagename = 'man'
manpage = subprocess.check_output(['man', pagename])
请注意, usingman
将为您提供针对终端格式化的输出。如果你想让它的格式不同,你必须
man -w <name>
以获取联机帮助页的位置,groff
使用选项来-T
选择所需的输出类型。调用时groff
,不要忘记加载正确的宏。
在 FreeBSD 上,我倾向于使用groff -Tlatin1 -mandoc <file>
文本输出。
尝试:
p = subprocess.Popen(('man -P cat %s' % manTopic,), shell = True)
stdout, stderr = p.communicate()
if stdout:
相反——“-P”选项覆盖了“man”命令使用的寻呼程序。