2

我正在使用 subprocess.check_output 向 slack 发送消息。格式一团糟,我正在考虑尝试 markdown == false,但只希望每个模块设置它,并且不知道该怎么做。我不确定这是否能解决我的问题,更大的问题是如何将以下文本格式化为可读

格式错误

应该看起来像(或接近):

干净的格式

代码:

@botcmd
def find_vm(self, args, SearchString):
    output = subprocess.check_output(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", ". \"C:\\Program Files\\Toolbox\\PowerShell Modules\\vmware\\./vmware.psm1\";", "find-vm", SearchString])
    return output
4

1 回答 1

2

用三个反引号包裹你的输出,这表示 Markdown 中的代码块。另请注意,您应该解码输出,subprocess.check_output因为它返回字节流,而不是我们倾向于认为的“文本”:

@botcmd
def find_vm(self, args, SearchString):
    output = subprocess.check_output(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", ". \"C:\\Program Files\\Toolbox\\PowerShell Modules\\vmware\\./vmware.psm1\";", "find-vm", SearchString])
    return "```\n{output}\n```".format(output=output.decode("utf-8"))

请务必将 utf-8 替换为您的实际系统正在使用的编码。

于 2017-03-06T07:33:22.003 回答