운영 체제의 명령줄 셸에서 프로그램 이름 뒤에 제공되는 인수는 다음과 같습니다. 명령줄 인수 . Python은 이러한 유형의 인수를 처리하는 다양한 방법을 제공합니다. 가장 일반적인 세 가지는 다음과 같습니다.
sys.argv 사용
sys 모듈은 Python 런타임 환경의 다양한 부분을 조작하는 데 사용되는 함수와 변수를 제공합니다. 이 모듈은 인터프리터가 사용하거나 유지 관리하는 일부 변수와 인터프리터와 강력하게 상호 작용하는 함수에 대한 액세스를 제공합니다.
그러한 변수 중 하나는 간단한 목록 구조인 sys.argv입니다. 주요 목적은 다음과 같습니다.
- 명령줄 인수 목록입니다.
- len(sys.argv)는 명령줄 인수의 수를 제공합니다.
- sys.argv[0]은 현재 Python 스크립트의 이름입니다.
예: 두 개의 숫자를 추가하는 Python 스크립트가 있고 숫자가 명령줄 인수로 전달된다고 가정해 보겠습니다.
파이썬3
# Python program to demonstrate> # command line arguments> import> sys> # total arguments> n>=> len>(sys.argv)> print>(>'Total arguments passed:'>, n)> # Arguments passed> print>(>'
Name of Python script:'>, sys.argv[>0>])> print>(>'
Arguments passed:'>, end>=> ' '>)> for> i>in> range>(>1>, n):> >print>(sys.argv[i], end>=> ' '>)> > # Addition of numbers> Sum> => 0> # Using argparse module> for> i>in> range>(>1>, n):> >Sum> +>=> int>(sys.argv[i])> > print>(>'
Result:'>,>Sum>)> |
>
>
산출:

getopt 모듈 사용
파이썬 getopt 모듈 C의 getopt() 함수와 유사합니다. sys 모듈과 달리 getopt 모듈은 매개변수 검증을 통해 입력 문자열 분리를 확장합니다. 값 할당을 포함하여 짧고 긴 옵션을 모두 허용합니다. 그러나 이 모듈은 입력 데이터를 올바르게 처리하기 위해 sys 모듈을 사용해야 합니다. getopt 모듈을 사용하려면 명령줄 인수 목록에서 첫 번째 요소를 제거해야 합니다.
통사론: getopt.getopt(인수, 옵션, [long_options])
매개변수:
인수: 전달할 인수 목록입니다.
옵션: 스크립트가 인식하려는 옵션 문자의 문자열입니다. 인수가 필요한 옵션 뒤에는 콜론(:)이 와야 합니다.
긴 옵션: 긴 옵션의 이름이 포함된 문자열 목록입니다. 인수가 필요한 옵션 뒤에는 등호(=)가 와야 합니다.
반환 유형: 두 요소로 구성된 값을 반환합니다. 첫 번째 요소는 (옵션, 값) 쌍의 목록입니다. 두 번째는 옵션 목록이 제거된 후 남은 프로그램 인수 목록입니다.
자바의 삽입 정렬
예:
파이썬3
# Python program to demonstrate> # command line arguments> import> getopt, sys> # Remove 1st argument from the> # list of command line arguments> argumentList>=> sys.argv[>1>:]> # Options> options>=> 'hmo:'> # Long options> long_options>=> [>'Help'>,>'My_file'>,>'Output='>]> try>:> ># Parsing argument> >arguments, values>=> getopt.getopt(argumentList, options, long_options)> > ># checking each argument> >for> currentArgument, currentValue>in> arguments:> >if> currentArgument>in> (>'-h'>,>'--Help'>):> >print> (>'Displaying Help'>)> > >elif> currentArgument>in> (>'-m'>,>'--My_file'>):> >print> (>'Displaying file_name:'>, sys.argv[>0>])> > >elif> currentArgument>in> (>'-o'>,>'--Output'>):> >print> ((>'Enabling special output mode (% s)'>)>%> (currentValue))> > except> getopt.error as err:> ># output error, and return with an error code> >print> (>str>(err))> |
>
>
정렬 목록 자바
산출:

argparse 모듈 사용
argparse 모듈을 사용하는 것은 위치 인수, 인수의 기본값, 도움말 메시지, 인수의 데이터 유형 지정 등과 같은 많은 옵션을 제공하므로 위의 두 옵션보다 더 나은 옵션입니다.
메모: 기본 선택적 인수로 긴 버전인 –help와 함께 -h가 포함됩니다.
예시 1: argparse 모듈의 기본 사용.
파이썬3
# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> parser.parse_args()> |
>
>
산출:

예시 2: 도움말 메시지에 설명을 추가합니다.
파이썬3
사전 초기화 프로그램 C#
# Python program to demonstrate> # command line arguments> import> argparse> msg>=> 'Adding description'> # Initialize parser> parser>=> argparse.ArgumentParser(description>=> msg)> parser.parse_args()> |
>
>
산출:

예시 3: 선택적 값 정의
파이썬3
# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> # Adding optional argument> parser.add_argument(>'-o'>,>'--Output'>,>help> => 'Show Output'>)> # Read arguments from command line> args>=> parser.parse_args()> if> args.Output:> >print>(>'Displaying Output as: % s'> %> args.Output)> |
>
>
산출:
