>  기사  >  백엔드 개발  >  Python 명령줄 매개변수는 무엇입니까?

Python 명령줄 매개변수는 무엇입니까?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-06-25 09:30:196125검색

Python 명령줄 매개변수는 무엇입니까?

Python 명령줄 매개변수는 무엇인가요? 명령줄 매개변수가 무엇인지 자세히 소개하겠습니다.

sys.argv

Python Zhongye sys의 sys.argv를 사용하여 명령줄 매개변수를 얻을 수 있습니다.

sys.argv는 명령줄 매개변수 목록입니다.

len(sys.argv)는 명령줄 매개변수의 개수입니다.

sys.argv[0]은 스크립트 파일의 이름입니다. 예: test.py

sys.argv[1:]은 공백으로 구분된 매개변수 목록입니다. #🎜🎜 #

getopt

함수 프로토타입:

getopt(args, shortopts, longopts = [])

매개변수:

args: 필요한 매개변수 구문 분석됨, 일반적으로 sys .argv[1:]
shortopts: 짧은 형식(-), 콜론 포함: 매개변수 뒤에 매개변수 값이 필요함을 나타냄, 콜론 없음, 매개변수 뒤에 매개변수 값이 필요하지 않음을 나타냄 매개변수
longopts: 긴 형식(--) 등. 기호는 매개변수 뒤에 매개변수 값이 필요함을 나타냅니다.
Return 값은 매개변수 값이 필요하지 않음을 나타냅니다. :
options는 조상을 포함하는 목록입니다. 각 조상은 [('-i ','127.0.0.1'),('-p','80')] ;#🎜과 같이 분석된 형식 정보입니다. 🎜#args는 '-' 또는 '--'가 없는 매개변수를 포함하는 목록입니다. 예: ['55', '66']

관련 권장사항: "

Python 동영상 tutorial

"예:

import sys
import getopt
try:    
    options,args = getopt.getopt(sys.argv[1:],"hp:i:", ["help","ip=","port="])
except getopt.GetoptError:    
    sys.exit()
for name,value in options:   
    if name in ("-h","--help"):        
        usage()    
    if name in ("-i","--ip"):        
        print 'ip is----',value    
    if name in ("-p","--port"):        
    print 'port is----',value
python test.py -i 127.0.0.1 -p 80 55 66
python test.py --ip=127.0.0.1 --port=80 55 66

"hp: i:”

짧은 형식 --- 뒤에 콜론이 없는 h: 뒤에 매개변수가 없음을 의미합니다. , p: 및 i: 뒤의 콜론은 나중에 매개변수가 필요함을 의미합니다.

["help","ip="," port="]
긴 형식 --- 등호가 없습니다 = 도움말 뒤에 , 이는 매개변수가 없음을 의미합니다.
참고: 명령줄 매개변수를 정의할 때 먼저 '-' 옵션으로 매개변수를 정의한 다음 ' 없이 매개변수를 정의해야 합니다. -'

optparse

Class OptionParser

class optparse.OptionParser(usage=None, 
                 option_list=None,
                 option_class=Option,
                 version=None,
                 conflict_handler="error",
                 description=None,
                 formatter=None,
                 add_help_option=True,
                 prog=None,
                 epilog=None)
# 🎜🎜#매개변수:

사용법: 프로그램 사용 지침. 여기서 "%prog"는 파일 이름(또는 prog 속성 값이 지정된 경우 prog 속성)으로 대체되고 "[options]"는 대체됩니다. 각 매개변수 사용 지침#🎜 🎜#version: 버전 번호

Function add_option()

add_option(short, long, action, type, dest, default, help)

Parameters: short 옵션 문자열: 첫 번째 매개변수입니다. -f;long과 같이 옵션의 약어를 나타냅니다. option string:은 옵션의 전체 철자를 나타내는 두 번째 매개변수입니다. --file;

action=: 이에 대한 처리 방법을 나타냅니다. 옵션의 기본값은 store입니다. 이는 옵션 값을 구문 분석된 옵션 개체의 멤버에 저장하는 것을 의미합니다.


action에는 다른 값도 있을 수 있습니다. bool 값의 경우 기본적으로 true를 저장하려면 store_true를 사용하고, 기본적으로 false를 저장하려면 store_false를 사용하고, const로 설정한 값을 이 옵션에 저장하는 데 store_const를 사용하고, 추가합니다. 옵션 추가를 의미합니다. 이때 옵션은 목록이며 여러 값을 포함할 수 있습니다. 카운트는 카운터에 하나를 추가하는 것을 의미하고, 콜백은 지정된 함수를 호출하는 것을 의미합니다. 모든 액션 값은 다음과 같습니다:
store + store_true + store_false + store_const +append + count + callback

type=: 이 옵션의 값 유형을 나타냅니다. 기본값은 다음과 같습니다. string이며 string, int, choice, float 및 complex로 지정할 수 있습니다.

dest=: optionparser가 구문 분석한 옵션 개체에서 이 옵션의 멤버 이름을 나타냅니다. # 🎜🎜#help=: 이 매개변수의 사용을 나타냅니다. 설명;
default=: 옵션의 기본값을 나타냅니다.

metavar=: 도움말에 표시되는 옵션의 기본값을 나타냅니다. const=: 작업이 store_const인 경우 값을 설정해야 합니다. 값

choices=: 유형을 선택 항목으로 설정할 때 이 값을 설정해야 합니다.


Function parse_args

(options, args) = parser.parse_args()

Return value :

options는 디렉터리이고 그 내용은 "매개변수/값"의 키-값 쌍입니다.

args는 목록이며, 해당 내용은 모든 매개변수에서 옵션을 제외한 나머지 입력 내용입니다. 간단한 사용법:

from optparse import OptionParser  
  
parser = OptionParser(usage="usage:%prog [options] arg1 arg2")  
parser.add_option("-t", "--timeout",  
                action = "store",  
                type = 'int',  
                dest = "timeout",  
                default = None,  
                help="Specify annalysis execution time limit"  
                )  
parser.add_option("-u", "--url",  
                action = "store_true",  
                dest = "url",  
                default = False,  
                help = "Specify if the target is an URL"  
                )
(options, args) = parser.parse_args() 
if options.url:  
    print(args[0])


복잡한 사용법: 매개변수 그룹화

parser = optparse.OptionParser(version="%prog " + config.version)# common_groupcommon_group = optparse.OptionGroup(
    parser, "Common Options",    "Common options for code-coverage.")
parser.add_option_group(common_group)
common_group.add_option(    "-l", "--lang", dest="lang", type="string", default="cpp",    help="module language.", metavar="STRING")
common_group.add_option(    "--module_id", dest="module_id", type="int", default=None,    help="module id.", metavar="INT")
cpp_group = optparse.OptionGroup(
    parser, "C/C++ Options",    "Special options for C/C++.")# cpp_groupparser.add_option_group(cpp_group)
cpp_group.add_option(    "--local-compile", action="store_true", dest="local_compile",    help="compile locally, do not use compile cluster.")
cpp_group.add_option(    "--module_path", dest="module_path", type="string", default=None,    help="module path, like app/ecom/nova/se/se-as.", metavar="STRING")
    
options, arguments = parser.parse_args()
lang = options.lang
module_id = options.module_id
local_compile = options.local_compile
module_path = options.local_compile

argparse#🎜🎜 #

Class ArgumentParser

class argparse.ArgumentParser(prog=None, 
                usage=None, 
                description=None, 
                epilog=None, 
                parents=[], 
                formatter_class=argparse.HelpFormatter,
                prefix_chars='-', 
                fromfile_prefix_chars=None, 
                argument_default=None, 
                conflict_handler='error', 
                add_help=True)

매개변수:

prog: 프로그램 이름(기본값: sys.argv[0]) usage: 설명 프로그램 사용 문자열 (기본값: 파서의 매개변수에서 생성) description: 매개변수 도움말 정보 앞의 텍스트(기본값: 비어 있음)

epilog: 매개변수 도움말 정보 뒤의 텍스트(기본값: 비어 있음) #🎜🎜 #parents: ArgumentParser 객체 목록, 해당 객체의 매개변수가 포함되어야 함

formatter_class: 사용자 정의된 도움말 정보를 위한 클래스

prefix_chars: 선택적 매개변수에 대한 접두사 문자 집합(기본값: '-') #🎜 🎜#fromfile_prefix_chars: 추가 인수를 읽어야 하는 파일의 접두사 문자 집합(기본값: 없음)

argument_default: 인수의 전역 기본값(기본값: 없음)
confluence_handler: 선택 사항 충돌 해결을 위한 인수 전략(보통 필요하지 않음)
add_help: 파서에 -h/–help 옵션 추가(기본값: True)


Function add_argument()#🎜🎜 ##🎜🎜 #

add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help]
[, metavar][, dest])

参数:
name or flags:选项字符串的名字或者列表,例如foo 或者-f, --foo。
action:在命令行遇到该参数时采取的基本动作类型。
nargs:应该读取的命令行参数数目。
const:某些action和nargs选项要求的常数值。
default:如果命令行中没有出现该参数时的默认值。
type:命令行参数应该被转换成的类型。
choices:参数可允许的值的一个容器。
required:该命令行选项是否可以省略(只针对可选参数)。
help:参数的简短描述。
metavar:参数在帮助信息中的名字。
dest:给parse_args()返回的对象要添加的属性名称。

简单用法:

import argparse
parser = argparse.ArgumentParser(description="progrom description")
parser.add_argument('key', help="Redis key where items are stored")
parser.add_argument('--host')
arser.add_argument('--port')
parser.add_argument('--timeout', type=int, default=5)
parser.add_argument('--limit', type=int, default=0)
parser.add_argument('--progress_every', type=int, default=100)
parser.add_argument('-v', '--verbose', action='store_true')
args = parser.parse_args()
key = args.key
host = args.host
port = args.port
timeout = args.timeout
limit = args.limit
progress-every = args.progress_every
verbose = args.verbose

위 내용은 Python 명령줄 매개변수는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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