파이썬 명령행 인자 sys.argv

범모 ( bbeom dev) ·2023년 1월 19일
0

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가 넘어가서 안녕하세요가 출력되는 것을 확인할 수 있다.

profile
AI로 사회에 긍정적인 영향을 줄 수 있는 개발자가 되기 위해 성장하고 있습니다.

0개의 댓글