Python コマンドラインパラメータとは何ですか?コマンド ライン パラメーターについて詳しく説明します。
sys.argv
sys の sys.argv を次のコマンドで使用することもできます。 Python: コマンド ライン パラメーターの取得:
sys.argv はコマンド ライン パラメーターのリストです。
len(sys.argv) はコマンド ライン パラメーターの数です。
sys.argv[0] はスクリプト ファイルの名前です。たとえば、test.py
sys.argv[1:] はスペースで区切られたパラメータ リストです
getopt
関数プロトタイプ:
getopt(args, shortopts, longopts = [])
パラメータ:
args: 解析する必要があるパラメータ、通常は sys.argv[1:]
shortopts: 短い形式 (-)、コロン付き: パラメータの後にパラメータ値が必要であることを示します。コロンなし、パラメータの後にパラメータ値が必要ないことを示します。
longopts: 長い形式 (--)、付き等号 (パラメータの後にパラメータ値が必要であることを示す) 等号なし (パラメータの後にパラメータが必要ないことを示す) 値
戻り値:
オプションは祖先を含むリストです。各祖先は[('-i','127.0.0.1'),('-p','80 ')] などの分析された形式情報。 ;
args は、「-」または「-」のないパラメータを含むリストです。 -'、例: ['55','66']
関連する推奨事項:「Python ビデオ チュートリアル>>
例:
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="]
長い形式 --- help の後に等号 = はありません。これは、その後ろにパラメータがないことを意味します。他の 3 つは = で、後でパラメータが必要であることを示します
注: コマンド ライン パラメータを定義するときは、まず「-」オプションを使用してパラメータを定義し、次に「-」を使用せずにパラメータを定義する必要があります。 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)
パラメータ: usage: プログラムの使用方法。「%prog」はファイル名 (prog 属性が指定された値の場合は prog 属性) に置き換えられます。 「[options]」は各パラメータの指示に置き換えられます
version: バージョン番号Function add_option()
add_option(short, long, action, type, dest, default, help)
long のようにオプションの省略形を示します。 オプション文字列: は 2 番目のパラメータで、--file;action= などのオプションの完全なスペルを示します。このオプションの処理メソッドを示します。デフォルト値はstoreです。これは、オプションの値を解析されたオプション・オブジェクトのメンバーに格納することを意味します。
アクションには他の値も含めることができます。ブール値の場合、store_true を使用してデフォルトで true を保存し、store_false を使用してデフォルトで false を保存します。store_const は、const によって設定された値をこのオプションに保存するために使用され、平均を追加します。オプションにパラメーターを追加します。リストに追加します。このとき、オプションはリストであり、複数の値を含めることができます。カウントはカウンターを 1 つ増やすことを意味し、コールバックは指定された関数を呼び出すことを意味します。すべてのアクション値は次のとおりです:store store_true store_false store_const append count callback
type=: このオプションの値のタイプを示します。デフォルトは文字列で、文字列として指定できます。 int、choice、float、complex;
dest=: optionparser によって解析されたオプション オブジェクト内のこのオプションのメンバーの名前を示します。デフォルトでは、長いオプション文字列が使用されます;
default=: オプションのデフォルト値であることを示します。この値を設定する必要があります;
関数 parse_args
(options, args) = parser.parse_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 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: プログラムの使用法を説明する文字列 (デフォルト: parser)
description: パラメータのヘルプ情報の前のテキスト (デフォルト: 空) epilog: パラメータのヘルプ情報の後のテキスト (デフォルト: 空) parents: ArgumentParser オブジェクトのリスト、パラメータこれらのオブジェクトを含める必要があります
formatter_class: カスタマイズされたヘルプ情報のクラスprefix_chars: オプションのパラメーターの接頭辞文字セット (デフォルト: '-')
fromfile_prefix_chars: 追加パラメーターが含まれるファイルの接頭辞文字セットから読み取る必要があります (デフォルト: なし)argument_default: 引数のグローバルなデフォルト値 (デフォルト: なし)
conflict_handler: 競合するオプションの引数を解決するための戦略 (通常は必要ありません)
add_help: -h を追加します/–パーサーへのヘルプ オプション (デフォルト: 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 中国語 Web サイトの他の関連記事を参照してください。