2017-03-06 9 views
1

subprocess.check_output을 사용하여 느슨하게 메시지를 보내고 있습니다. 형식은 엉망입니다, 나는 markdown == false를 시도하는 것에 대해 생각하고 있었지만, 모듈 당 설정하고 싶었고, 그렇게하는 방법을 모르겠습니다. 내가 그 그래도 내 문제를 해결할 수 있는지 확실하지 않다, 더 큰 문제는 (또는 닫기)Errbot에서 보낸 슬랙 메시지를 포맷하십시오.

bad formatting

모양을해야 읽을 수 있도록 다음과 같은 텍스트를 포맷하는 방법은 다음과 같습니다

clean formatting

코드 :

@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 
+1

여기 정규식이 도움이 될 수 있습니다 : https://docs.python.org/3/library/re.html. "text : text"패턴 사이에 공백이 있습니다. – elena

답변

1

가 마크 다운의 코드 블록을 의미 트리플 역 따옴표에 출력을 감 쌉니다.

@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로 교체해야합니다 : 또한, 우리가 생각하는 경향이 없습니다 "텍스트"를 바이트 스트림을 반환하기 때문에 당신이 subprocess.check_output의 출력을 디코딩해야 유의하게 사용 중입니다.

+0

우수 감사합니다. 어떻게 3 개의 backticks를 더 추가하여 그것을 어떻게 느슨하게 만들 수 있는지 알고 있습니까? 3 개의 백틱을 추가하는 것만 큼 간단합니까? ha –

+0

아니요, 여유 시간표는 파일 업로드 유형입니다 (https://api.slack.com/methods/files.upload). Errbot은 불완전한 파일 업로드를 지원하지만 스 니펫이 아니라 믿기 때문에이 작업을 원한다면 느슨한 API를 직접 호출해야합니다 (일부 문서는 http://errbot.io에서 사용할 수 있습니다). /en/latest/user_guide/plugin_development/backend_specifics.html) –