2010-06-14 2 views
2
$whois abc.com 

내가이 명령을 칠 파이썬을 사용하고 텍스트 문자열로 결과를주고 싶다. 어떻게해야합니까?python을 사용하여이 명령을 실행하고 결과를 반환하려면 어떻게해야합니까?

+1

복제본 : http://stackoverflow.com/questions/89228/how-to-call-external-command-in-python –

+1

질문이 당신이 언급 한 이래로 복제본은 일반적인 것입니다. 외부 명령을 호출하는 것보다 whois를 수행하는 더 좋은 방법이 있습니다. – bortzmeyer

답변

4

당신은 예를 들어, subprocess를 사용할 수 있습니다

from subprocess import Popen, PIPE 
output = Popen(["/usr/bin/whois", "abc.com"], stdout = PIPE).communicate()[0] 

stdout = PIPE 매개 변수의 힘이 아닌 콘솔의 임시 파이프에 기록 할 표준 출력 (당신이 원하지 않는 경우 stdout 매개 변수를 제거).

+0

"print output"이라고 말하면 None을 반환합니까? – TIMEX

+0

그렇게해서는 안됩니다. 셸에서 명령을 실행할 때 whois는 무엇을 인쇄합니까? – AndiDog

+0

오, 문서의 경우 실제로'None' 이외의 결과를 얻으려면'stdout = PIPE' 매개 변수가 필요합니다. – AndiDog

1

subprocess 괜찮습니다. 반면, whois 프로토콜은 so simple입니다. 외부 명령을 사용해야하는 이유는 알지 못합니다 (그리고 가용성에 달려 있습니다). 포트 43에 대한 TCP 연결을 열고 한 줄짜리 쿼리를 보내고 응답을 읽으십시오.

+0

대부분의 다른 whois 서버 나 api는 IP에 대해 정크를 반환하지만 Linux whois는 최종 노드에서 실제 Whois를 가져올 때까지 ip를 추격하는 유일한 서버입니다. 내가 스스로를 분명하게하는지 확신 할 수 없지만 저자가 직면 한 문제를 설명하고 싶었습니다. – Max

관련 문제