본문 바로가기
개발/python

[Python] sys.argv로 프로그램 인자값 받기

by 유다110 2019. 5. 29.
반응형

sys = system

argv = arguments value

sys.argv는 단어 그대로 풀어쓰면 시스템 인자값이라는 뜻이다.

 

sys.argv의 첫 번째 값인 sys.argv[0]은 기본적으로 실행하는 파이썬 스크립트의 경로이다. 고로 어느 환경에서 실행하든 이 값은 무조건 존재한다.

import sys
print("파이썬 스크립트 경로: ", sys.argv[0])
print("인자값 길이: ", len(sys.argv))
print("모든 인자값 출력: " , str(sys.argv))

 

해당 파일을 실행하면 다음과 같이 실행된 파일 경로가 나온다.

파이썬 스크립트 경로:  util/db_helper.py
인자값 길이:  1
모든 인자값 출력:  ['util/db_helper.py']

 

(+참고로 AWS Lambda에서는 어떻게 나오나 궁금해서 찍어봤더니 실행 경로가 '/var/runtime/awslambda/bootstrap.py'로 나왔다. 실행 파일 이름이 bootstrap.py가 아닌데도! 찾아보니 Lambda 컨테이너를 뜯어보면 이 bootstrap.py가 handler를 감싸 실제로 실행되는 건 bootstrap.py라 한다.)

 

sys.argv는 주로 실행시 옵션을 받을 때 사용하는데, 인자값을 설정하고 싶다면 스크립트를 실행할 때 인자를 나란히 추가하면 된다.

> python db_helper.py dev

 

그럼 결과값이 이렇게!

파이썬 스크립트 경로:  util/db_helper.py
인자값 길이:  2
모든 인자값 출력:  ['util/db_helper.py', 'dev']

 

참고

[Python] 명령행으로 프로그램 인자값 받기 - sys.argv

How to use sys.argv in Python

 

반응형

댓글