반응형
여러 Python 스크립트를 성공적으로 실행하여 subprocess 모듈을 사용하여 기본 스크립트에서 호출했습니다.
subprocess.popen([sys.executable, 'script.py'], shell=True)
그러나 이러한 각 스크립트는 셸에 일부 출력을 생성하는 일부 시뮬레이션 (C ++ 응용 프로그램의 .exe 파일)을 실행합니다. 이러한 모든 출력은 해당 스크립트를 시작한 기본 셸에 기록됩니다. 각 스크립트에 대해 새 셸을 생성하고 싶습니다. subprocess.call을 호출 할 때 shell = True
속성을 사용하여 새 셸을 생성하려고 시도했지만 (popen에서도 시도) 작동하지 않습니다.
subprocess.call로 생성 된 각 프로세스에 대한 새 셸을 어떻게 얻습니까?
Spencer가 제안한 stdin 및 stdout에 대한 문서를 읽고 문제를 해결 한 플래그를 발견했습니다 : subprocess.CREATE_NEW_CONSOLE. 파이프를 리디렉션하는 것도 작업을 수행 할 수도 있지만 이것이 가장 간단한 해결책 인 것 같습니다 (적어도이 특정 문제에 대해서는). 방금 테스트했고 완벽하게 작동했습니다.
subprocess.popen([sys.executable, 'script.py'], creationflags = subprocess.CREATE_NEW_CONSOLE)
해결 방법
이러한 파이프를 리디렉션하지 않으면 부모로부터 상속됩니다. 프로세스 교착 상태에주의하십시오.
참조 페이지 https://stackoverflow.com/questions/6469655
반응형
'파이썬' 카테고리의 다른 글
파이썬에서 os.system ()의 반환 값은 무엇입니까? (0) | 2020.09.30 |
---|---|
파이썬 장고 버전 확인 방법 (0) | 2020.09.30 |
파이썬 한 줄에 여러 예외 포착 (블록 제외) (0) | 2020.09.30 |
파이썬 문자열 소스의 Python XML ElementTree? (0) | 2020.09.30 |
파이썬 목록 전치 (0) | 2020.09.30 |
댓글