main.py
import sys
print(sys.argv)
main.py에 다음과 같은 코드를 작성하고 터미널에서 파이썬 코드를 실행할 때 매개변수를 같이 넣어주면 어떤 일이 벌어질까?
파이썬 코드를 실행할 때 넣은 매개변수 1 2 3이 공백으로 구분되어 argv[1], argv[2], argv[3]에 저장되었다. argv[0]은 항상 기본적으로 파일 이름이 들어가있다.
이를 이용해서 프로그램 안에서 다른 프로그램이 실행될 때 ( 콜백 맞나?.. ) 매개변수를 전달하여 프로그램이 실행되게 할 수 있다.
main.py
import sys
try:
if sys.argv[1] == 'hello':
print('안녕하세요')
except:
print('종료')
다음과 같은 코드는 그냥 실행했을 때 종료라는 메시지만 출력된다. 왜냐하면 argv[1]에 어떠한 인자도 들어가 있지 않기 때문이다. 따라서 안녕하세요를 출력하고 싶다면 인자로 'hello'를 넣어주면 된다.
test.py 파일을 다른 프로그램이라고 가정하고 생성한 뒤 다음과 같은 코드를 작성하고 실행하면
import os
os.system('python main.py hello') # 터미널 언어
argv[1] 인자로 hello가 넘어갔으므로 안녕하세요가 출력되는 것을 확인할 수 있다.
다른 프로그램에서 인자를 넘겨주면서 해당 인자를 main.py가 받은 것으로 생각할 수 있다.
물론 터미널에서 python main.py hello
를 입력해도 인자로 hello가 넘어가서 안녕하세요가 출력되는 것을 확인할 수 있다.