반응형
주요 getoutput () 하위 프로세스에서 해당
이 질문에 이미 답변이 있습니다.
내가 좋아하는 몇 가지 쉘급의 출력을 얻으려면 ls
나 df
제공합니다. 그보고 commands.getoutput('ls')
받지 않고 subprocess.call('ls')
오직 나에게 리턴 코드를받을 것입니다.
몇 가지 간단한 해결 방법이 있기를 바랍니다.
subprocess.Popen 사용 :
import subprocess
process = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE)
out, err = process.communicate()
print(out)
프로세스가 종료 될 때까지 통신이 차단됩니다. 종료하기 전에 출력이 필요한 경우
process.stdout.readline ()을 사용할 수 있습니다 . 자세한 내용은 설명서를 참조하십시오 .Python> = 2.7의 경우 subprocess.check_output()
.
http://docs.python.org/2/library/subprocess.html#subprocess.check_output
를 subprocess.check_output()
사용 하여 오류를 발생 시키십시오 CalledProcessError
. 출력을 사용하는 것이 좋습니다.
# \return String of the output, stripped from whitespace at right side; or None on failure.
def runls():
import subprocess
try:
byteOutput = subprocess.check_output(['ls', '-a'], timeout=2)
return byteOutput.decode('UTF-8').rstrip()
except subprocess.CalledProcessError as e:
print("Error in ls -a:\n", e.output)
return None
참고 URL : https://stackoverflow.com/questions/6657690/python-getoutput-equivalent-in-subprocess
반응형
'ProgramingTip' 카테고리의 다른 글
"void 0"과 "undefined"의 차이 (0) | 2020.12.07 |
---|---|
F #은 어떤 영역에서 "사용에있어 전혀 의미가 없습니까?" (0) | 2020.12.07 |
Java에서 구현 된 메서드와 함께 Scala 특성 사용 (0) | 2020.12.07 |
Bash에서 함수 정의를 인쇄하는 방법은 무엇입니까? (0) | 2020.12.07 |
file_put_contents () 실행시 폴더 생성 (0) | 2020.12.07 |