(이 포스팅은 1편을 읽고 왔다는 전제로 작성 되었습니다.)
2편에서는 output값을 받는 방법과 인자를 넘겨주는 방법에 대해 알아보겠다.
기본 파일 세팅
#script.py
print('hello')
subprocess
를 이용하여 script.py
파일을 실행시켜 보자.
#subprocess_tutor.py
subprocess.run(["python", "script.py"]
#output
'''
hello
'''
output 전달받는 방법
#subprocess_tutor.py
output = subprocess.run(["python", "script.py"], capture_output=True)
print(output)
#output
'''
CompletedProcess(args=['python', 'script.py'], returncode=0, stdout=b'hello\r\n', stderr=b'')
'''
output을 전달받기 위해서 capture_output=True
설정을 해줘야 한다.
이때 output은 CompletedProcess
클래스다.
#subprocess_tutor.py
import subprocess
output = subprocess.run(["python", "script.py"], capture_output=True)
print(output.stdout.decode())
#output
'''
hello
'''
원하는 값을 뽑아내기 위해서 .stdout
프러퍼티로 해당 값에 접근 후 .decode
를 통해 byte값을 string으로 변환해야 한다.
인자 전달하는 법
전달하는 법은 간단하다.
script.py
뒤에 값을 하나 더 넣어주면 된다.
#subprocess_tutor.py
import subprocess
subprocess.run(["python", "script.py", "인자 전달"])
그렇다면 script.py
에서 넘겨준 인자값을 어떻게 받을 수 있을까?
두가지 방식이 있다.
1) sys
이용
#script.py
import sys
print(sys.argv)
# output
'''
['script.py', '인자 전달']
'''
sys.argv
값을 출력해보면 리스트 값이 들어있다.
0번째 인덱스 값은 파일명이고 1번째부터 인자로 들어오는 값이다.
#subprocess_tutor.py
import subprocess
subprocess.run(["python", "script.py", "인자 전달", "인자 전달2"])
만약 인자 2개를 전달한다면
아래와 같은 형태로 값을 전달 받는다.
#script.py
import sys
print(sys.argv)
# output
['script.py', '인자 전달', '인자 전달2']
2) argparse
이용
( argparse
가 낯선분은 포스팅 참조)
#subprocess_tutor.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("arg1")
parser.add_argument("arg2")
args = parser.parse_args()
print(args.arg1)
print(args.arg2)
#output
'''
인자 전달
인자 전달2
'''
'파이썬 > 파이썬 중급' 카테고리의 다른 글
[python]multiprocessing Process 완벽 정리(초보자) (0) | 2023.01.26 |
---|---|
함수에있는 **kwargs는 뭘까? (0) | 2023.01.16 |
[파이썬] argparse 란? | 사용법 (0) | 2022.08.29 |
[Python기초] 특정 폴더에 있는 파일명 추출 하는법 완벽정리 (1) | 2022.04.19 |
[파이썬 중급] getattr | setattr | delattr 은 무엇일까? (0) | 2021.10.14 |
댓글
꼬예님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.