我正在运行 Linux,我想将一些手册页导入我的应用程序。
我想到了这个:
p = subprocess.Popen(('man %s' % manTopic,), shell = True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
if stdout:
但这不好,男人只显示第一页并阻止我的应用程序
如何使用 Python 获取手册页?
最佳答案
您可以使用 check_output
获取命令的全部输出.此外,使用 shell 不是必需的,它甚至可能使您的应用程序容易受到 shell injection attack 的攻击。并且是 strongly discouraged .
import subprocess
pagename = 'man'
manpage = subprocess.check_output(['man', pagename])
请注意,使用 man
将为您提供针对终端格式化的输出。如果你想让它的格式不同,你必须
- 调用
man -w <name>
获取联机帮助页的位置, - 可能解压缩手册页,
- 将其提供给
groff
使用-T
选项来选择你想要的输出类型。
调用groff
时,不要忘记加载正确的宏。
在 FreeBSD 上我倾向于使用 groff -Tlatin1 -mandoc <file>
获取文本输出。
关于python - Python如何获取手册页内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768894/