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']
관련 권장사항: "
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="]
긴 형식 --- 등호가 없습니다 = 도움말 뒤에 , 이는 매개변수가 없음을 의미합니다.
참고: 명령줄 매개변수를 정의할 때 먼저 '-' 옵션으로 매개변수를 정의한 다음 ' 없이 매개변수를 정의해야 합니다. -'
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)
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
dest=: optionparser가 구문 분석한 옵션 개체에서 이 옵션의 멤버 이름을 나타냅니다. # 🎜🎜#help=: 이 매개변수의 사용을 나타냅니다. 설명;
default=: 옵션의 기본값을 나타냅니다.
choices=: 유형을 선택 항목으로 설정할 때 이 값을 설정해야 합니다.
Function parse_args
(options, args) = parser.parse_args()
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
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!