Python 명령행 매개 변수argv와argparse는 어떻게 사용합니까

개요


python 스크립트를 실행할 때 명령행 방식으로 실행 매개 변수를 전송하는 방법은 보통 다음과 같은 두 가지가 있습니다.
  • sys.argv-간결
  • argparse - 풍부하고 사용자 정의 가능
  • 다음은 구체적으로 사용에 대해 자세히 말씀드리겠습니다.

    argv

    
    # test_argv.py
    
    import sys
    
    args = sys.argv
    print(f'args = {args}')
    
    >>> output
    ➜ git:(master) python3 test_argv.py     
    args = ['test_argv.py']
    ➜ git:(master) ✗ python3 test_argv.py 1 2 3
    args = ['test_argv.py', '1', '2', '3']
    ➜ git:(master) ✗ python3 test_argv.py 1 2 3 'hello world !'
    args = ['test_argv.py', '1', '2', '3', 'hello world !']
    위에서 보듯이 argv 방법으로 얻은 결과:
  • list
  • 로 돌아가기
  • 첫 번째 매개 변수는 스크립트 자체
  • 매개변수에 공백이 있는 경우 따옴표로
  • argparse


    argparse 모듈의 기능이 비교적 풍부하고 그 핵심은add_를 통해argument 방법은 다음과 같이 로고, 형식, 유형과 범위 등의 특성을 사용자 정의합니다.
  • *name_or_flag - 인삼명이나 flag, 예를 들어'-n','--number'
  • 정의
  • type - 인삼 유형 지정
  • choices - 가입 범위 지정
  • default - 인삼 기본값 지정
  • required - 이 음식이 싫은지, 부울 유형
  • help - 매개 변수 개요
  • 추가 정보: argparse

    인스턴스


    test_argv.py
    
    import argparse
    
    #  parser 
    parser = argparse.ArgumentParser(description='test module of argparse')
    
    #  -n/--number 
    #  int
    # help 
    parser.add_argument(
      '-n', '--number', type=int,
      help='args of number'
    )
    
    #  -o/--output 
    #  :['txt', 'csv', 'doc']
    parser.add_argument(
      '-o', '--output', type=str,
      choices=['txt', 'csv', 'doc'],
      help='output method'
    )
    
    #  -d/--default 
    #  :['txt', 'csv', 'doc']
    parser.add_argument(
      '-d', '--default', type=int,
      choices=[_ for _ in range(1, 10)],
      default=5,
      help='default'
    )
    
    #  foo
    parser.add_argument('foo')
    
    args = parser.parse_args()
    print(f'args = {args}')
    
    #  
    print(
      f'number = {args.number}, type = {type(args.number)}
    ' f'output = {args.output}, type = {type(args.output)}
    ' f'default = {args.default}, type = {type(args.default)}
    ' f'foo = {args.foo}, type = {type(args.foo)}' )
    output
    
    # -h -  help
    ➜ git:(master) ✗ python3 test_argv.py -h
    usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
              [-d {1,2,3,4,5,6,7,8,9}]
              foo
    
    test module of argparse
    
    positional arguments:
     foo
    
    optional arguments:
     -h, --help      show this help message and exit
     -n NUMBER, --number NUMBER
                args of number
     -o {txt,csv,doc}, --output {txt,csv,doc}
                output method
     -d {1,2,3,4,5,6,7,8,9}, --default {1,2,3,4,5,6,7,8,9}
                default
    #  , None
    ➜ git:(master) ✗ python3 test_argv.py  
    args = Namespace(number=None, output=None)
    number = None
    output = None
    
    #  
    ➜ git:(master) ✗ python3 test_argv.py -n 33 --output txt
    args = Namespace(number=33, output='txt')
    number = 33, type = <class 'int'>
    output = txt, type = <class 'str'>
    
    #  
    ➜ git:(master) ✗ python3 test_argv.py -n str     
    usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
    test_argv.py: error: argument -n/--number: invalid int value: 'str'
    ➜ git:(master) ✗ python3 test_argv.py -o excel    
    usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
    test_argv.py: error: argument -o/--output: invalid choice: 'excel' (choose from 'txt', 'csv', 'doc')
    
    #   
    ➜ git:(master) ✗ python3 test_argv.py   
    args = Namespace(default=5, number=None, output=None)
    number = None, type = <class 'NoneType'>
    output = None, type = <class 'NoneType'>
    output = 5, type = <class 'int'>
    이상은Python 명령행 매개 변수argv와argparse를 어떻게 사용해야 하는지에 대한 상세한 내용입니다. 더 많은 Python 명령행 매개 변수argv와argparse에 대한 자료는 저희 다른 관련 글을 주목해 주십시오!

    좋은 웹페이지 즐겨찾기