我正在使用Linux,想要将一些手册页面导入到我的应用程序中。
我想到了以下方法:
p = subprocess.Popen(('man %s' % manTopic,), shell = True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
if stdout:
但这没用,人只显示第一页并阻止了我的应用程序。
我如何使用Python获取man页面?
我正在使用Linux,想要将一些手册页面导入到我的应用程序中。
我想到了以下方法:
p = subprocess.Popen(('man %s' % manTopic,), shell = True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
if stdout:
但这没用,人只显示第一页并阻止了我的应用程序。
我如何使用Python获取man页面?
check_output
获取命令的全部输出。此外,不必使用shell,这样甚至可能会使您的应用程序容易受到shell注入攻击而被强烈反对。import subprocess
pagename = 'man'
manpage = subprocess.check_output(['man', pagename])
man
会给你一个终端格式的输出。如果您想要不同格式的输出,您需要:
man -w <name>
来获取手册页面的位置,-T
选项将其提供给groff
以选择所需的输出类型。groff
时,请不要忘记加载正确的宏。groff -Tlatin1 -mandoc <file>
来获得文本输出。shell=True
的安全隐患。我的+3按钮在哪里? - Lukas Graf尝试:
p = subprocess.Popen(('man -P cat %s' % manTopic,), shell = True)
stdout, stderr = p.communicate()
if stdout:
相反地,"-P"选项覆盖了"man"命令使用的分页程序。