subprocess.open과 subprocess.run의 차이점은 무엇입니까?
저는 처음입니다.subprocess
모듈과 설명서는 무엇이 다른지 궁금하게 만듭니다.subprocess.popen
그리고.subprocess.run
. 명령이 수행하는 작업에 차이가 있습니까?하나만 더 새것입니까?어느 것을 사용하는 것이 더 나을까요?
명령을 실행하고 끝날 때까지 기다리되 그 동안 다른 작업을 수행하지 않으려는 경우를 단순화하기 위해 Python 3.subprocess.run()
5에 추가되었습니다.그 외의 경우는 여전히 다음을 사용해야 합니다.subprocess.Popen
.
가장 큰 차이점은subprocess.run()
명령을 실행하고 완료될 때까지 기다립니다.subprocess.Popen
프로세스가 완료되는 동안 작업을 계속한 다음 자신에게 반복적으로 전화를 걸어 데이터를 프로세스에 전달하고 수신할 수 있습니다.두번째로.subprocess.run()
답례품
subprocess.run()
그냥 싸기만Popen
그리고.Popen.communicate()
따라서 데이터를 전달/receive하기 위해 루프를 만들거나 프로세스가 완료될 때까지 기다릴 필요가 없습니다.
공식 문서에서 어떤 매개 변수에 대한 정보를 확인합니다.subprocess.run()
에게 전해 주다Popen
그리고.communicate()
.
둘 다 파이썬에서 기본적으로 사용할 수 있습니다.
하위 프로세스를 호출하는 데 권장되는 접근 방식은 이 프로세스가 처리할 수 있는 모든 사용 사례에 대해 run() 함수를 사용하는 것입니다.보다 고급 사용 사례를 위해 기본적인 Popen 인터페이스를 직접 사용할 수 있습니다.
서브프로세스.실행:
import subprocess
import sys
result = subprocess.run([sys.executable, "-c", "print('ocean')"])
-Subprocess.open: subprocess로 여러 명령줄 실행, communication method는 프로세스가 완료될 때까지 기다렸다가 stdout과 stderr을 tuple로 최종 출력
EX:
import subprocess
process = subprocess.Popen(shell_cmd,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
text = True,
shell = True
)
std_out, std_err = process.communicate()
std_out.strip(), std_err
언급URL : https://stackoverflow.com/questions/39187886/what-is-the-difference-between-subprocess-popen-and-subprocess-run
'source' 카테고리의 다른 글
MySQL Workbench: 선택한 개체 없음 (0) | 2023.09.19 |
---|---|
mysql에서 보기에 대한 주석 만들기 (0) | 2023.09.19 |
도커, 볼륨을 읽기 전용으로 마운트 (0) | 2023.09.19 |
도커 이미지 설치 디렉토리를 변경하는 방법은? (0) | 2023.09.19 |
행 1에서 시작하고 행 2에서 끝을 갖는 행 2개의 결과를 결합합니다. (0) | 2023.09.19 |