精华内容
下载资源
问答
  • python命令行参数是什么?下面给大家具体介绍一下什么是命令行参数: sys.argv Python 中也可以所用 sys sys.argv 来获取命令行参数: sys.argv 是命令行参数列表。 len(sys.argv) 是命令行参数...

    转载自品略图书馆  http://www.pinlue.com/article/2020/04/1007/5410139993403.html

    python命令行参数是什么?下面给大家具体介绍一下什么是命令行参数:

    sys.argv

    Python 中也可以所用 sys 的 sys.argv 来获取命令行参数:

    sys.argv 是命令行参数列表。

    len(sys.argv) 是命令行参数个数。

    sys.argv[0]是脚本文件的名字,如:test.py

    sys.argv[1:]是以空格分割的参数列表

    getopt

    函数原型:

    1

    getopt(args, shortopts, longopts = [])

    参数:

    args:需要解析的参数,一般是sys.argv[1:]

    shortopts:短格式 (-),有冒号:表示参数后面需要参数值,没有冒号表示后面无需参数值

    longopts:长格式(--) ,有等号表示参数后面需要参数值,没有等号表示后面无需参数值

    返回值:

    options是个包含元祖的列表,每个元祖是分析出来的格式信息,比如 [("-i","127.0.0.1"),("-p","80")] ;

    args 是个列表,包含那些没有‘-’或‘--’的参数,比如:["55","66"]

    相关推荐:《Python视频教程》

    示例:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    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后面没有等号=,表示后面不带参数,其他三个有=,表示后面需要参数

    注意:定义命令行参数时,要先定义带"-"选项的参数,再定义没有‘-’的参数

    optparse

    类OptionParser

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    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:版本号

    函数add_option()

    1

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

    参数:

    short option string: 为第一个参数,表示option的缩写,例如-f;

    long option string: 为第二个参数,表示option的全拼,例如--file;

    action=: 表示对此option的处理方式,默认值为store,表示存储option的值到解析后的options对象的成员中。

    action还可以有其他的值:对于bool值,使用store_true来默认存储true,使用store_false来默认存储false,store_const用来存储const设置的值到此option,append表示增加option的参数到list中,此时此option是一个list,可能包含多个值,count表示对counter增加一,callback表示调用指定的函数。所有的action值如下:

    store + store_true + store_false + store_const + append + count + callback

    type=:表示此option的值的类型,默认为string,可以指定为string, int, choice, float and complex;

    dest=:表示此option在经过optionparser解析后的options对象中成员的名字,默认使用long option string;

    help=:表示这个参数的使用说明;

    default=:表示比option的默认值;

    metavar=:表示显示到help中option的默认值;

    const=:当action为store_const的时候,需要设置此值;

    choices=:当设置type为choices时,需要设置此值;

    函数parse_args

    1

    (options, args) = parser.parse_args()

    返回值:

    options为是一个directory,它的内容为“参数/值 ”的键值对。

    args是一个list,它的内容是所有参数除去options后,剩余的输入内容。

    简单用法:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    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])

    复杂用法:参数分组

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    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

    类ArgumentParser

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    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:额外的参数应该读取的文件的前缀字符集(默认:None)

    argument_default:参数的全局默认值(默认:None)

    conflict_handler:解决冲突的可选参数的策略(通常没有必要)

    add_help:给解析器添加-h/–help 选项(默认:True)

    函数add_argument()

    1

    2

    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()返回的对象要添加的属性名称。

    简单用法:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    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命令行参数是什么的详细内容

     

     

    展开全文
  • 这个答案表明optparse适用于较旧的Python版本.对于Python 2.7及更高版本,argparse取代了optparse.有关更多信息,请参见this answer.正如其他人所指出那样,你最好选择optparse而不是getopt. getopt几乎标准getopt...

    这个答案表明optparse适用于较旧的Python版本.对于Python 2.7及更高版本,argparse取代了optparse.有关更多信息,请参见this answer.

    正如其他人所指出的那样,你最好选择optparse而不是getopt. getopt几乎是标准getopt(3)C库函数的一对一映射,并不是很容易使用.

    optparse虽然有点冗长,但结构更好,后期更容易扩展.

    这是向解析器添加选项的典型行:

    parser.add_option("-q", "--query",

    action="store", dest="query",

    help="query string", default="spam")

    它几乎说明了自己;在处理时,它将接受-q或–query作为选项,将参数存储在名为query的属性中,如果不指定它,则具有默认值.它也是自我记录的,你可以使用该选项声明help参数(在使用-h / – help运行时将使用它).

    通常你用以下方法解析你的参数:

    options, args = parser.parse_args()

    默认情况下,这将解析传递给脚本的标准参数(sys.argv [1:])

    然后将options.query设置为您传递给脚本的值.

    您只需通过执行即可创建解析器

    parser = optparse.OptionParser()

    这些都是您需要的基础知识.这是一个完整的Python脚本,显示了这一点:

    import optparse

    parser = optparse.OptionParser()

    parser.add_option("-q", "--query",

    action="store", dest="query",

    help="query string", default="spam")

    options, args = parser.parse_args()

    print "Query string:", options.query

    5行python,向您展示基础知识.

    将其保存在sample.py中,然后运行一次

    python sample.py

    和一次

    python sample.py --query myquery

    除此之外,您会发现optparse非常容易扩展.

    在我的一个项目中,我创建了一个Command类,它允许您轻松地在命令树中嵌套子命令.它大量使用optparse将命令链接在一起.这不是我能用几行简单解释的东西,但对于主要课程,以及a class that uses it and the option parser可以免费获得browse around in my repository

    展开全文
  • 在本篇文章里小编给大家分享是一篇关于python必选参数是什么意思相关知识点,需要朋友们可以参考下。
  • 很多次看到API文档里面的/和*,那么这两个符号到底是什么意思呢? 插入链接:到知乎看看 /的含义是之前的参数都是positional-only: >>> help(binascii.b2a_base64) b2a_base64(data, /, *, newline=True) ...

    很多次看到API文档里面的/和*,那么这两个符号到底是什么意思呢?
    插入链接:到知乎看看

    /的含义是之前的参数都是positional-only:

    >>> help(binascii.b2a_base64)
    b2a_base64(data, /, *, newline=True)
        Base64-code line of data.
    >>> import binascii
    >>> binascii.b2a_base64(b'foo')
    b'Zm9v\n'
    >>> binascii.b2a_base64(data=b'foo')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: b2a_base64() takes exactly 1 positional arguments (0 given)
    
    作者:angwer
    链接:https://www.zhihu.com/question/287097169/answer/455761400
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    

    /*之间的参数可以被用作positional argument和keyword argument

    *之后的参数是keyword-only

    目前用pure Python是不支持positional-only argument的(除了*args),所以你一般只能看到C写的函数signature里有/,比如内置函数

    展开全文
  • 之前在看某些库源代码会经常发现函数参数后面带有个冒号,一直很纠结这一个什么语法,最近通过搜索发现原来一个注释意思。 输出结果: ...

    之前在看某些库的源代码是会经常发现函数参数后面带有个冒号,一直很纠结这是一个什么语法,最近通过搜索发现原来是一个注释的意思。

    输出结果:

    展开全文
  • 具体分析如下:如果想对python脚本传参数python中对应argc, argv(c语言命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1: sys.argv[1]参数2: sys.argv[2]test.py:...
  • 按照惯例,来个目录: ...1.必选参数在前,默认参数在后,否则Python的解释器会报错(思考一下为什么默认参数不能放在必选参数前面); 2.当函数有多个参数时,把变化大的参数放前面,变化小的参数放后...
  • Python函数参数的传递

    2021-03-25 17:17:08
    猜猜结果应该是什么? 按照C++语言思维,如果Python函数参数的传递是传值话,结果应该是[0, 1],如果是传引用话,结果应该是[‘T’, ‘Z’, ‘Y’]。 可是实际结果是:[0, 1, 100]。所以,Python函数参数的...
  • 前几天看了些python的代码,发现有些函数的参数前带有(*)号,有的甚至有两个(*)号,不清楚它们代表什么意思。 解释 查阅资料后发现,参数前面加上* 号 ,意味着参数的个数不止一个,另外带一个星号(*)参数的...
  • 位置参数(Positional Argument):实参顺序和形参顺序相同,参数放置顺序很重要 关键字参数(Keyword Argument):实参由变量名和值通过等号连接组成 默认值参数(Default Value):定义函数时给形参默认赋值...
  • 非常不解的地方,既然bar声明在foo这个函数的参数列表里面的,那么默认参数的行为在这里看起来有点像C++的函数静态变量,对吧,也就是一个static类型的值,第一次使用被赋值,以后都这个定义。 这个和我...
  • 本篇将介绍python中sys, getopt模块处理命令行参数如果想对python脚本传参数python中对应argc, argv(c语言命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1: sys.argv[1...
  • 本篇将介绍python中sys, getopt模块处理命令行参数如果想对python脚本传参数python中对应argc, argv(c语言命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1: sys.argv[1...
  • 下面方法中,带有*星号和**双星号的参数是什么意思?def foo(param1, *param2):def bar(param1, **param2):*args和**kwargs是一种常见的习惯用法,允许函数有任意数量的参数,如Python文档中定义函数的更多部分所述...
  • Python函数的参数左上角带星号“*”是什么含义? 如下图所示,函数ArtistNames的参数names左上角带有“*”,这个代表参数收集,即在调用该函数的时候,可以传递任意数量的参数,然后python会将这些参数打包成一个...
  • 1、说明*,nkw表示命名关键字参数,用户想输入的关键字参数名称,定义方式在nkw前追加*2、作用限制调用者传达的参数名称。3、实例#命名关键字参数defprint_info4(name,age=18,height=178,*,weight,**kwargs):'''...
  • 如果你Python 官方文档,以 Python 3.7.7 版本为例子,路径Python 3.7.7 documentation > Tutorial > 4. More Control Flow Tools > 4.6. Defining Functions(4.7. More on Defining Functions)我习惯...
  • python 函数参数

    2019-02-13 18:56:48
    什么是参数? 参数,也叫参变量,一个变量。...Python的参数分为以下四种类型: 必须参数 关键字参数 默认参数 不定长参数 必需参数 必需参数须以正确的顺序传入函数。调用时的...
  • Python upper()方法Python 字符串描述Python upper() 方法将字符串中小写字母转为大写字母。语法upper()方法语法:str.upper()参数NA。返回值返回小写字母转为大写字母字符串。实例以下实例展示了 upper()函数...
  • Python中函数的参数带星号是什么意思?

    千次阅读 多人点赞 2019-06-26 22:21:13
    参数带星号表示支持可变不定数量的参数,这种方法叫参数收集。 星号又可以带1个或2个,带1个表示按位置来收集参数,带2个星号表示按关键字来收集参数。 1、带一个星号的参数收集模式: 这种模式在函数定义时在某个...
  • Python self参数

    2020-07-31 14:21:43
    Self 是什么 ​ 类的所有实例方法都必需至少带有一个名为self的参数,且必需是该方法的第一个形参(如果有多个形参),self 和对象指向同一个内存地址,self参数代表对象本身。 python在定义类的过程中,无论是显式...
  • 有时,我们事先并不知道将传递给函数的参数数量.Python允许我们通过具有任意数量参数的函数调用来处理这种情况。 在函数定义中,我们在参数名称前使用星号(*)来表示这种参数。这一个例子。 In [11] def greet...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,691
精华内容 2,276
关键字:

python的参数是什么

python 订阅