>  기사  >  백엔드 개발  >  Python 명령줄 구문 분석 도구 Argparse 사용법에 대한 자세한 설명

Python 명령줄 구문 분석 도구 Argparse 사용법에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-03-10 13:55:451715검색

이 글에서는 주로 Python 명령줄 구문 분석 도구인 Argparse의 사용법을 자세히 설명합니다. 관심 있는 친구들은

최근 Python 표준 라이브러리인 pathon의 명령줄 구문 분석 도구인 argparse를 연구하고 있습니다. 명령줄 프로그램 작성에 권장되는 도구입니다.

예전에는 UI 프로그램을 했는데 오늘은 명령줄 프로그램을 사용해 보았는데 특히 vc++에서는 인터페이스 문제를 공부하는 데 많은 시간을 소비할 필요가 없어 매우 번거롭습니다. .

이제 Python을 사용하여 명령줄을 구현합니다. 핵심 컴퓨팅 모듈은 자체적으로 확장 라이브러리로 C로 작성할 수 있으며 효과가 상당히 좋습니다.

argparse를 배우고, 공식 문서에서 toturial 기사를 찾아서 간략하게 번역했습니다.

http://docs.python.org/2/howto/argparse.html#id1

Argparse 튜토리얼
이 튜토리얼은 Python에 대한 간결한 소개를 제공합니다. 표준 라이브러리에서 권장하는 명령줄 매개변수 구문 분석 모듈인 Argparse를 사용합니다.

1. 기본 개념

이 튜토리얼에서는 일반적인 ls 명령을 사용하여 argparse의 기능을 보여줍니다.

$ ls
cpython devguide prog.py pypy rm-unused-function.patch
$ ls pypy
ctypes_configure demo dotviewer include lib_pypy lib-python ...
$ ls -l
total 20
drwxr-xr-x 19 wena wena 4096 Feb 18 18:51 cpython
drwxr-xr-x 4 wena wena 4096 Feb 8 12:04 devguide
-rwxr-xr-x 1 wena wena 535 Feb 19 00:05 prog.py
drwxr-xr-x 14 wena wena 4096 Feb 7 00:59 pypy
-rw-r--r-- 1 wena wena 741 Feb 18 01:01 rm-unused-function.patch
$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

위의 4개 명령에서 다음과 같은 기본 개념을 이해할 수 있습니다.

1) 매개변수가 없는 ls 명령도 가능합니다. 실행하고 기본적으로 현재 디렉터리의 모든 내용을 인쇄합니다.
2) 더 많은 콘텐츠를 표시하려면 더 많은 매개변수를 제공해야 합니다. 이 경우에는 pypy라는 다른 디렉터리를 표시하려고 합니다. 우리가 한 일은 프로그램이 명령줄의 인수 위치에 따라 무엇을 할지 결정해야 하기 때문에 공통 위치 인수를 지정하는 것입니다. 이 개념은 cp 명령에 더 가깝습니다. 사용법은 cp src dest입니다. src는 복사하려는 파일을 나타내고, dest는 파일을 복사하려는 위치를 나타냅니다.
3) 이제 프로그램의 동작을 변경하고 싶습니다. 이 예에서는 파일 이름만이 아닌 파일의 서쪽 정보를 표시하고 싶습니다. -l 매개 변수는 우리가 알고 있는 선택적 인수(선택 인수)
4)이고 마지막 문장은 도움말을 표시하는 것입니다. 문서 이전에 사용한 적이 없는 명령을 사용하는 방법을 배우는 데 사용할 수 있는 조각입니다.

2. 기본 이해

기본 프로그램부터 시작합니다(아무것도 하지 않음)

import argparse
parser = argparse.ArgumentParser()
parser.parse_args()

실행 결과:

$ python prog.py
$ python prog.py --help
usage: prog.py [-h]

optional arguments:
 -h, --help show this help message and exit
$ python prog.py --verbose
usage: prog.py [-h]
prog.py: error: unrecognized arguments: --verbose
$ python prog.py foo
usage: prog.py [-h]
prog.py: error: unrecognized arguments: foo

결과 분석:

1) 매개 변수를 지정하지 않고 이 프로그램을 실행하면 아무 결과도 얻을 수 없습니다.
2) 두 번째 이름은 argparse 사용의 이점을 보여줍니다. 아무 작업도 수행하지 않았지만 좋은 도움말 메시지를 받았습니다.
3) --help 매개변수를 수동으로 설정하지 않고도 좋은 도움말 메시지를 얻을 수 있습니다. 그러나 다른 매개변수(예: foo)가 제공되면 오류가 생성됩니다.

3. 위치 매개변수

먼저 예를 들어보세요:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print args.echo

실행 결과:

$ python prog.py
usage: prog.py [-h] echo
prog.py: error: the following arguments are required: echo
$ python prog.py --help
usage: prog.py [-h] echo

positional arguments:
 echo

optional arguments:
 -h, --help show this help message and exit
$ python prog.py foo
foo

결과 분석:

이번에는 프로그램에 허용되는 명령줄 매개변수를 설정하기 위해 add_argument() 메서드를 추가했습니다.
이제 프로그램을 실행하려면 매개변수를 설정해야 합니다.
parse_args() 메서드는 실제로 명령줄 인수에서 일부 데이터를 반환합니다. 위의 예에서는 echo입니다.
이 "마법"과 유사한 프로세스는 argparse에 의해 자동으로 완료됩니다.
자동으로 생성된 도움말 정보가 아름답게 표시되지만 echo 매개변수만으로는 어떤 기능을 하는지 알 수 없습니다. 그래서 좀 더 유용하게 사용할 수 있도록 몇 가지 사항을 추가했습니다.

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo", help="echo the string you use here")
args = parser.parse_args()
print args.echo

실행 결과:

$ python prog.py -h
usage: prog.py [-h] echo

positional arguments:
 echo    echo the string you use here

optional arguments:
 -h, --help show this help message and exit

이를 바탕으로 더 많은 변화를 만들어 가겠습니다. 한 점: (입력 매개변수 제곱의 제곱을 계산합니다)

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number")
args = parser.parse_args()
print args.square**2

다음은 실행 결과입니다.

$ python prog.py 4
Traceback (most recent call last):
 File "prog.py", line 5, in <module>
  print args.square**2
TypeError: unsupported operand type(s) for ** or pow(): &#39;str&#39; and &#39;int&#39;

argparse가 입력을 문자열로 처리하기 때문에 이 프로그램이 올바르게 실행되지 않으므로 해당 유형을 (type=int)

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
          type=int)
args = parser.parse_args()
print args.square**2

다음은 결과입니다:

$ python prog.py 4
16
$ python prog.py four
usage: prog.py [-h] square
prog.py: error: argument square: invalid int value: &#39;four&#39;

이제 프로그램이 원활하게 실행되고 일부 잘못된 입력을 처리할 수 있습니다.

위 내용은 Python 명령줄 구문 분석 도구 Argparse 사용에 대한 간단한 튜토리얼입니다.

위 내용은 Python 명령줄 구문 분석 도구 Argparse 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.