320x100
파이썬 input과 같은 함수로 유저에게 값을 직접 받을 수 있는데
파이썬을 실행 시 값을 전달받을 수도 있다.
아래의 코드로 확인가능하다.
import sys
if __name__ == '__main__':
print(sys.argv[0]) # main.py
print(sys.argv[1]) # a
print(sys.argv[2]) # b
단점은 sys.argv가 배열이기 때문에 매개변수가 없으면 sys.argv의 len값은 1이기 때문에 sys.argv[1], sys.argv[2]와 같은 값을 호출하면 out of range 에러가 발생한다.
아래와 같이 코딩하거나 또는 for, if문등을 적절히 사용하면 에러는 피할 수 있다.
import sys
if __name__ == '__main__':
print(sys.argv[0])
if len(sys.argv)>1:
print(sys.argv[1])
if len(sys.argv) > 2:
print(sys.argv[2])
그러나 매개변수가 꼭 필요한 상황이라면?
시간이 지나 매개변수의 쓰임을 까먹었다면?
매개변수의 type이 틀렸다면?
이 상황을 모두 if문 등으로 해결하기에는 여러모로 불편하다.
import sys
if __name__ == '__main__':
if len(sys.argv) < 2:
print("매개변수 2개 이상이 필수입니다.")
else:
print(sys.argv[0])
if sys.argv[1].isdigit() is False:
print("첫번째 인자는 숫자이어야 합니다.")
else:
print(sys.argv[1])
print(sys.argv[2])
위 상황을 해결할 수 있는 방법 중 하나가 argparse이다.
2023.03.18 - [프로그래밍/Python] - [Python] argparse를 이용한 파이썬 실행 시 매개변수 받기
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 파일명 일괄 변경 (0) | 2023.08.20 |
---|---|
[Python] argparse를 이용한 파이썬 실행 시 매개변수 받기 (0) | 2023.03.18 |
[Python] 문장(String)에서 리스트 단어 찾기 (0) | 2022.12.08 |
[Python] 딕셔너리 리스트 특정 속성이 최대값/최소값 불러오기 (0) | 2022.12.08 |
[Python] Teachable Machine 이미지 프로젝트(Tensorflow Lite) (0) | 2022.12.07 |
댓글