스택큐힙리스트

명령 줄 인수를 구문 분석하는 가장 좋은 방법은 무엇인가요? [중복] 본문

카테고리 없음

명령 줄 인수를 구문 분석하는 가장 좋은 방법은 무엇인가요? [중복]

스택큐힙리스트 2023. 4. 27. 08:53
반응형

이 질문은 이미 답변이 있습니다 :

How can I read and process (parse) command line arguments?

22개의 답변

9개월 전에 종료되었습니다.

Python 명령 줄 인수를 구문 분석하기위한 가장 쉬운, 간결한 및 유연한 방법 또는 라이브러리는 무엇인가요?

답변 1

$argparse가 가는 방향입니다. 여기 사용 방법 요약입니다:

1) 초기화하다

import argparse

# Instantiate the parser

parser = argparse.ArgumentParser(description='Optional app description')

2) 인수 추가하기

# Required positional argument

parser.add_argument('pos_arg', type=int,

help='A required integer positional argument')

# Optional positional argument

parser.add_argument('opt_pos_arg', type=int, nargs='?',

help='An optional integer positional argument')

# Optional argument

parser.add_argument('--opt_arg', type=int,

help='An optional integer argument')

# Switch

parser.add_argument('--switch', action='store_true',

help='A boolean switch')

3) 구문 분석하다

args = parser.parse_args()

4) 접근

print(Argument values:)

print(args.pos_arg)

print(args.opt_pos_arg)

print(args.opt_arg)

print(args.switch)

5) 값 확인하기

if args.pos_arg > 10:

parser.error(pos_arg cannot be larger than 10)

사용법

올바른 사용:

$ ./app 1 2 --opt_arg 3 --switch

Argument values:

1

2

3

True

잘못된 인수:

$ ./app foo 2 --opt_arg 3 --switch

usage: convert [-h] [--opt_arg OPT_ARG] [--switch] pos_arg [opt_pos_arg]

app: error: argument pos_arg: invalid int value: 'foo'

$ ./app 11 2 --opt_arg 3

Argument values:

11

2

3

False

usage: app [-h] [--opt_arg OPT_ARG] [--switch] pos_arg [opt_pos_arg]

convert: error: pos_arg cannot be larger than 10

모든 도움:

$ ./app -h

usage: app [-h] [--opt_arg OPT_ARG] [--switch] pos_arg [opt_pos_arg]

Optional app description

positional arguments:

pos_arg A required integer positional argument

opt_pos_arg An optional integer positional argument

optional arguments:

-h, --help show this help message and exit

--opt_arg OPT_ARG An optional integer argument

--switch A boolean switch

답변 2

질의: 커맨드 라인 인수를 파싱하는 가장 좋은 방법은 무엇인가요?

커맨드 라인 인수는 프로그램에 대한 입력 매개변수로 사용되며 명령어 라인에서 쉽게 전달할 수 있습니다. 이러한 인수를 효과적으로 파싱하면 프로그램을 더 유연하고 다양한 인수를 쉽게 처리할 수 있습니다. 이에 대한 가장 좋은 방법에 대해 알아보도록 하겠습니다.

1. 명령행 파싱 라이브러리 사용

커맨드 라인 파싱을 위한 라이브러리를 사용하는 것이 가장 좋은 방법입니다. 이러한 라이브러리는 명령줄 인수를 파싱하고 구문 분석하는 데 도움을 줍니다. Python에서는 argparse, click, docopt 등의 라이브러리를 사용할 수 있습니다. 이 라이브러리들은 높은 수준에서 파싱을 제공하며 깔끔한 API를 제공합니다.

2. argparse 사용

argparse는 파이썬의 표준 라이브러리 중 하나로, 명령줄 인수를 구문 분석하고 처리할 수 있는 기능을 제공합니다. 이러한 인수를 처리하는 가장 간단한 방법은 argparse.ArgumentParser를 사용하는 것입니다. 이메서드를 호출하고 add_argument()를 사용하여 원하는 인수를 추가하면 됩니다.

3. click 사용

click은 명령줄 인터페이스 (CLI)를 개발하기 위한 Python 패키지입니다. click을 사용하면 명령줄 인터페이스의 선언적 구문을 사용하여 CLI를 손쉽게 정의하고 파싱할 수 있습니다. Click을 사용하면 높은 수준의 인터페이스를 생성하여 이를 파싱해줍니다.

4. docopt 사용

docopt는 독립적인 CLI 파서입니다. 그것은 help 메시지와 문서에 프로그램 인터페이스를 서술할 뿐만 아니라 개발자가 일반적으로 사용하는 명령어를 손쉽게 사용할 수 있게 합니다.

결론적으로, 명령행 파싱 라이브러리를 사용하는 것이 가장 쉽고 효과적인 방법입니다. 그러나 구글 검색 엔진 최적화에 유용한 순위 최적화를 위해 argparse, click, docopt 에 대해서도 더 자세히 알아보았습니다. 이에 따라 적합한 파서를 선택하여, 프로그램의 유연성을 높인 더 효과적인 명령행 파싱이 가능합니다.

반응형
Comments