Python에서 명령줄 매개변수를 얻는 방법 요약

高洛峰
풀어 주다: 2017-03-08 10:09:05
원래의
2789명이 탐색했습니다.

명령줄 매개변수를 얻는 Python의 방법 소개: getopt 모듈 및 argparse 모듈.

python 버전: 2.7

1. getopt 모듈

은 주로 모듈의 기능을 사용합니다:

options, args = getopt.getopt(args, shortopts, longopts=[])

매개변수 인수: 일반적으로 sys.argv[1:]. 실행된 스크립트의 이름이며 명령줄 매개변수로 계산되지 않는 sys.argv[0]을 필터링합니다.

매개변수 shortopts: 짧은 형식 분석 문자열. 예를 들어, "hp:i:"는 h 뒤에 콜론이 없다는 의미입니다. 이는 매개변수가 없음을 의미합니다. 즉, p와 i 뒤에 콜론이 있다는 의미입니다.

매개변수 longopts: 긴 형식 분석 문자열 목록입니다. 예: ["help", "ip=", "port="], help 뒤에 등호가 없습니다. 이는 매개변수가 없음을 의미합니다. 이는 ip 및 port 뒤에 콜론이 있음을 의미합니다.

반환 값 옵션은 튜플을 요소로 포함하는 목록입니다. 각 튜플의 형식은 (옵션 문자열, 추가 매개변수)입니다. 예: ('-i', '192.168.0.1')

반환 값 args는 목록이며, 그 요소는 '-' 또는 '--'를 포함하지 않는 매개변수입니다.

명령줄에서 다음 명령을 실행하세요:

python test_getopt.py -i 192.168.0.1 -p 80 123 a

또는

python test_getopt.py -ip=192.168.0.1 --port=80 123 a

test_getopt.py 코드는 다음과 같습니다.

#encoding=utf-8

import getopt
import sys

def main(argv):
    try:
        options, args = getopt.getopt(argv, "hp:i:", ["help", "ip=", "port="])
    except getopt.GetoptError:
        sys.exit()

    for option, value in options:
        if option in ("-h", "--help"):
            print("help")
        if option in ("-i", "--ip"):
            print("ip is: {0}".format(value))
        if option in ("-p", "--port"):
            print("port is: {0}".format(value))

    print("error args: {0}".format(args))

if __name__ == '__main__':
    main(sys.argv[1:])
로그인 후 복사

실행 결과는 다음과 같습니다.

Python에서 명령줄 매개변수를 얻는 방법 요약

2. argparse 모듈

은 명령줄 옵션과 매개변수를 구문 분석하는 데 사용되는 표준 모듈입니다.

사용 단계:

1: import argparse #Import 모듈

2: 파서 = argparse.ArgumentParser() #파싱 객체 생성

3: 파서 .add_argument() #객체에 사용되는 명령줄 옵션 및 매개변수 추가

4: parser.parser_args() #명령줄 구문 분석

다음 세부 사항 소개 메서드 ArgumentParser 및 add_argument:

ArgumentParser(prog=None, 사용법=None, 설명=None, epilog=None, parent=[], formatter_class=argparser.HelpFormatter, prefix_chars='-', fromfile_prefix_chars= None, Argument_default=None, conflict_handler='error', add_help=True)

매개변수에는 기본값이 있습니다. 매개변수가 잘못되어 프로그램을 실행하거나 parser.print_help() 메서드를 호출하는 경우 이러한 설명이 인쇄됩니다. . 일반적으로 매개변수 설명만 전달하면 됩니다.

add_argument(이름 또는 플래그... [, 작업] [, nargs] [, const] [, 기본값] [, 유형] [, 선택] [, 필수] [, 도움말] [, 메타변수] [, dest])

공통 매개변수는 다음과 같이 설명됩니다.

이름 또는 플래그: 명령줄 매개변수 이름 또는 옵션(예: -p, --port

action:

Store: 기본 액션 모드, 지정된 변수에 값을 저장합니다.

Store_const: 저장된 값은 매개변수의 const 부분에 지정되며 종종 부울이 아닌 구현에 사용됩니다. 명령줄 플래그

store_true/store_false: 부울 스위치. store_true의 기본값은 False입니다. 명령줄에 부울 스위치를 입력하면 값은 True입니다. store_false는 반대입니다.

Append: 값을 목록에 저장합니다. 이 매개변수는 재사용할 수 있습니다.

Append_const: 값을 목록에 저장합니다. 저장된 값은 const 부분에 지정됩니다. 매개변수

개수: 통계 입력 매개변수 약어 개수

버전: 버전 정보 출력 후 스크립트 종료

nargs: 일반적으로 명령줄 매개변수 개수 와일드카드로 표시: ? 하나만 사용됨을 의미하고, *는 0 이상, +는 1 이상을 의미합니다.

기본값: 기본값

유형: 매개변수 유형, 기본값은 문자열 유형, 부동 소수점일 수도 있습니다. int, boolean 등의 유형

선택사항: 입력값 범위 ​​

필수: 기본값은 False, True인 경우 매개변수를 입력해야 한다는 의미

help : 정보

dest를 사용하기 위한 도움말 프롬프트: 프로그램 매개변수의 해당 변수 이름(예: add_argument("-a", dest="code_name")), 스크립트에서 parser.code_name을 사용하여 명령줄 옵션 값에 액세스

샘플 스크립트 test_argparse.py 코드는 다음과 같습니다.

 1 #encoding=utf-8 2 import argparse 3  4 def main(args): 5     print("--address {0}".format(args.code_address))    #args.address会报错,因为指定了dest的值 6     print("--flag {0}".format(args.flag))   #如果命令行中该参数输入的值不在choices列表中,则报错 7     print("--port {0}".format(args.port))   #prot的类型为int类型,如果命令行中没有输入该选项则报错 8     print("-l {0}".format(args.log))  #如果命令行中输入该参数,则该值为True。因为为短格式"-l"指定了别名"--log",所以程序中用args.log来访问 9 10 if __name__ == '__main__':11     parser = argparse.ArgumentParser(usage="it's usage tip.", description="help info.")12     parser.add_argument("--address", default=80, help="the port number.", dest="code_address")13     parser.add_argument("--flag", choices=['.txt', '.jpg', '.xml', '.png'], default=".txt", help="the file type")14     parser.add_argument("--port", type=int, required=True, help="the port number.")15     parser.add_argument("-l", "--log", default=False, action="store_true", help="active log info.")16 17     args = parser.parse_args()18     main(args)
로그인 후 복사

다음 명령을 각각 실행하십시오:

python test_argparse.py

Python에서 명령줄 매개변수를 얻는 방법 요약

python test_argparse.py --port 80

Python에서 명령줄 매개변수를 얻는 방법 요약

python test_argparse.py --port 80 --flag apk

Python에서 명령줄 매개변수를 얻는 방법 요약

python test_argparse.py --port 80 -l

Python에서 명령줄 매개변수를 얻는 방법 요약

명령줄 매개변수를 얻는 더 많은 Python 방법과 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿