파이썬에서 명령행으로 받은 인자(argument) 처리

파이썬 스크립트를 실행할 때 입력하는 내용은 sys.argv에 리스트 형태로 저장됩니다. 예를 들어 2개의 정수를 인자(argument)로 받아서 곱셈한 결과를 출력하는 파이썬 스크립트가 multi.py라면, 아래와 같이 실행할 수 있을 것입니다.

python3 multi.py 10 20

위와 같이 명령을 실행할 경우, sys.argv는 아래와 같이 구성됩니다.

['multi.py', '10', '20']

스크립트 이름은 sys.argv[0]에, 첫번째 인자는 sys.argv[1]에, 두번째 인자는 sys.argv[2]에 문자열(string) 형태로 저장된 것을 볼 수 있습니다.

multi.py 스크립트의 내용은 아래와 같이 구성할 수 있겠습니다.

import sys

if len(sys.argv) !=3:
  print("오류: 2개의 인자가 필요합니다.")
  exit()

try:
  x_int = int(sys.argv[1])
  y_int = int(sys.argv[2])
except:
  print("오류: 인자는 정수여야 합니다.")
  exit()

# 곱한 결과 출력
result = x_int * y_int
print(sys.argv[1], "*", sys.argv[2], "=", result)

@joviansummer의 스팀 프로젝트

스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)

jswit 증인 노드 프로젝트를 시작합니다.

jsup 업보팅(upvoting) 서비스 소개

jsup 수혜자 지정 기능 추가

jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기

STEEM.NFT - 디지털 아트 보존 프로젝트

Sort:  

https://docs.python.org/ko/3/library/argparse.html 를 이용하시면 좀 더 강력한 커맨드라인 옵션 파싱을 하실 수 있습니다.

옵션이 복잡할 때 유용하겠네요. 좋은 정보 감사합니다.

Upvoted! Thank you for supporting witness @jswit.
Please check my new project, STEEM.NFT. Thank you!
default.jpg

Coin Marketplace

STEEM 0.09
TRX 0.31
JST 0.031
BTC 106867.14
ETH 3841.24
USDT 1.00
SBD 0.59