Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 명령줄 및 변수 인수?

<시간/>

명령줄 인수

명령줄 인수는 사용자가 프로그램이 추가 정보를 출력하거나 지정된 소스에서 데이터를 읽거나 원하는 형식으로 데이터를 해석하는 것과 같은 특정 방식으로 작동할 수 있도록 하는 입력 매개변수입니다.

Python 명령줄 인수

Python은 명령줄 인수를 읽을 수 있는 많은 옵션을 제공합니다. 가장 일반적인 방법은 -

  • 파이썬 sys.argv
  • 파이썬 getopt 모듈
  • Python argparse 모듈

파이썬 시스템 모듈

sys 모듈은 명령줄 인수(CLA)를 목록에 저장하고 이를 검색하기 위해 sys.argv를 사용합니다. 명령줄 인수를 문자열로 읽는 간단한 방법입니다.

import sys

print(type(sys.argv))
print('The command line arguments are: ')
for i in sys.argv:
print(i)

위의 프로그램을 실행하면 출력은 다음과 같습니다. -

출력

>python CommandLineOption.py H E L L O
<class 'list'>
The command line arguments are:
CommandLineOption.py
H
E
L
L
O

파이썬 getopt 모듈

python getopt 모듈은 sys.argv와 같은 인수 시퀀스를 구문 분석하고 옵션 및 인수 쌍의 시퀀스와 옵션이 아닌 인수의 시퀀스를 반환합니다.

구문

getopt.getopt(args, options, [long_options])

어디에:

  • 인수 – 구문 분석할 인수 목록

  • 옵션 – 스크립트가 인식하고자 하는 옵션 문자의 문자열입니다.

  • Long_options – 이것은 선택적 매개변수이며 지원되어야 하는 긴 옵션의 이름이 있는 문자열 목록입니다.

getopt 모듈 옵션 구문에는 -

가 포함됩니다.
  • -a
  • -bval
  • -b 발
  • --노아그
  • --witharg=val
  • --witharg val

예제를 통해 getopt 모듈을 이해합시다 -

짧은 형식 옵션

아래 프로그램은 인수가 필요한 두 번째 옵션과 함께 -a 및 -b의 두 가지 옵션을 사용합니다.

import getopt
print (getopt.getopt(['-a', '-bval', '-c', 'val'], 'ab:c:'))

결과

([('-a', ''), ('-b', 'val'), ('-c', 'val')], [])

긴 형식 옵션

프로그램은 --noarg 및 -witharg의 두 가지 옵션을 사용하며 시퀀스는 ['noarg', 'witharg=']

여야 합니다.
import getopt
print (getopt.getopt([ '--noarg', '--witharg', 'val', '--witharg2=another' ],'',[ 'noarg', 'witharg=', 'witharg2=' ]))

결과

([('--noarg', ''), ('--witharg', 'val'), ('--witharg2',
'another')], [])

geoopt 모듈 사용을 보여주는 또 다른 예 -

import getopt
import sys
argv = sys.argv[1:]
try:
opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file='])
print(opts)
print(args)
except getopt.GetoptError:
print('Something Wrong!')
sys.exit(2)

결과

>python CommandLineOption.py -m 2 -h "Help" H E L L O
[('-m', '2'), ('-h', '')]
['Help', 'H', 'E', 'L', 'L', 'O']

파이썬 argparse 모듈

Python argparse 모듈은 명령줄 인수를 구문 분석하는 데 선호되는 방법입니다. 이 모듈은 위치 인수, 인수의 기본값, 도움말 메시지, 인수의 데이터 유형 지정 등과 같은 여러 옵션을 제공합니다.

다음은 argparse 모듈을 이해하는 간단한 프로그램입니다 -

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("string", help="Print the word in upper case letters")
args = parser.parse_args()
print(args.string.upper()) # This way argument can be manipulated.

출력

>python CommandLineOption.py "Hello, pythoN"
HELLO, PYTHON

–verbosity와 같은 argparse 모듈을 사용하여 선택적 인수를 설정할 수 있습니다.