python - Python如何获取手册页内容?

标签 python linux subprocess manpage

我正在运行 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/

相关文章:

linux - 公共(public) Samba 共享配置 - 不可写?

c++ - 如何加载带有后缀的库

python - 将标准输出从多个进程重定向到 python 日志记录模块

带有 shell=True : redirections and platform-independent subprocess killing 的 python 子进程

Python与qt Designer ui弹窗qlineEdit访问

python - 在 Python 中访问全局变量时的导入行为

python - 使用 Python 在 GNU Radio 中计算 BER 置信度

Python 等待事件的其他方式

linux - Linux 上的 CFS 优先级调度程序

python 子进程