파이썬 subprocess 사용 질문드려요.
조회수 2224회
subprocess가 다른 py파일 실행하는 걸로 알고있는데요, 실제 A1.py 실행하면 B1.py파일만 열리고 A1의 화면에 "안녕하세요"라고 출력은 되지 않더라고요..
콘솔로 경로가서 python B1.py는 가능한지라 앞에 python을 붙여 봤지만 잘 안되내요ㅠ
filepath = "C:/python B1.py"
제가 원하는 것은 A1.py에서 run 하면 subprocess(다른 py파일 실행하는 거.) 이용해 B1.py 를 실행하려하는데, 관련 정보나 방법 공유해주시면 감사하겠습니다.
A1.py
import subprocess
filepath = "C:/B1.py"
aaa = subprocess.check_output(filepath, shell=True)
print(aaa)
B1.py
print("안녕하세요")
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
subprocess는 command line 명령어를 직접 입력받으므로 check_output의 args는 실행 커맨드 형태로 입력되어야 합니다.
import subprocess filename = 'subproc.py' # $ python subproc.py 의 형태가 되어야 하므로 stdout = subprocess.check_output(["python", filename]) print(stdout)
제 환경이 MacOS라 Windows와는 달라 적지는 않았는데 subproc.py를 executable 형태로 만들고 실행하도록 하는 방식도 가능하겠네요.
뭐... 임의의 명령어를 받는 함수이니 다양한 형태가 가능합니다.
댓글 입력