Questions tagged «argparse»

用于实现命令行界面的Python模块


3
在argparse中带有破折号的选项
我想在argparse模块中有一些选项,例如,--pm-export当我尝试使用它时,就像args.pm-export出现没有属性的错误一样pm。我该如何解决这个问题?-命令行选项中可以有吗?
154 python  argparse 

2
使用argparse获取选定的子命令
当我将子命令与python argparse一起使用时,可以获取所选的参数。 parser = argparse.ArgumentParser() parser.add_argument('-g', '--global') subparsers = parser.add_subparsers() foo_parser = subparsers.add_parser('foo') foo_parser.add_argument('-c', '--count') bar_parser = subparsers.add_parser('bar') args = parser.parse_args(['-g, 'xyz', 'foo', '--count', '42']) # args => Namespace(global='xyz', count='42') 因此args不包含'foo'。sys.argv[1]由于可能存在全局arg,因此简单地编写不起作用。如何获得子命令本身?

5
Argparse:如果存在“ x”,则必需的参数“ y”
我的要求如下: ./xyifier --prox --lport lport --rport rport 对于参数prox,我使用action ='store_true'来检查它是否存在。我不需要任何论点。但是,如果设置了--prox,我也需要 rport和lport。有没有一种简单的方法可以使用argparse做到这一点,而无需编写自定义条件编码。 更多代码: non_int.add_argument('--prox', action='store_true', help='Flag to turn on proxy') non_int.add_argument('--lport', type=int, help='Listen Port.') non_int.add_argument('--rport', type=int, help='Proxy port.')
118 python  argparse 


8
检查是否设置了argparse可选参数
我想检查用户是否设置了可选的argparse参数。 我可以安全地使用isset检查吗? 像这样: if(isset(args.myArg)): #do something else: #do something else 这对于float / int / string类型参数是否起作用? 我可以设置一个默认参数并检查它(例如,设置myArg = -1,或为字符串““或“ NOT_SET”)。但是,我最终要使用的值仅在脚本的稍后部分计算。因此,我会将其默认设置为-1,然后稍后将其更新为其他内容。与仅检查该值是否由用户设置相比,这似乎有点笨拙。
112 python  argparse 

3
指定输入参数argparse python的格式
我有一个需要一些命令行输入的python脚本,并且我正在使用argparse进行解析。我发现文档有点混乱,找不到在输入参数中检查格式的方法。这个示例脚本解释了我检查格式的意思: parser.add_argument('-s', "--startdate", help="The Start Date - format YYYY-MM-DD ", required=True) parser.add_argument('-e', "--enddate", help="The End Date format YYYY-MM-DD (Inclusive)", required=True) parser.add_argument('-a', "--accountid", type=int, help='Account ID for the account for which data is required (Default: 570)') parser.add_argument('-o', "--outputpath", help='Directory where output needs to be stored (Default: ' + os.path.dirname(os.path.abspath(__file__))) 我需要检查选项,-s并且-e用户输入的格式为YYYY-MM-DD。我不知道argparse中有一个选项可以完成此任务。


11
Python argparse:至少需要一个参数
我已经使用argparse了Python程序,可以-process,-upload或两者: parser = argparse.ArgumentParser(description='Log archiver arguments.') parser.add_argument('-process', action='store_true') parser.add_argument('-upload', action='store_true') args = parser.parse_args() 如果没有至少一个参数,该程序将毫无意义。如何配置argparse以强制至少选择一个参数? 更新: 评论之后:用Python方式至少对一个选项进行参数化的方法是什么?
92 python  argparse 

3
Python argparse互斥组
我需要的是: pro [-a xxx | [-b yyy -c zzz]] 我尝试了这个,但是没有用。有人可以帮我吗? group= parser.add_argument_group('Model 2') group_ex = group.add_mutually_exclusive_group() group_ex.add_argument("-a", type=str, action = "store", default = "", help="test") group_ex_2 = group_ex.add_argument_group("option 2") group_ex_2.add_argument("-b", type=str, action = "store", default = "", help="test") group_ex_2.add_argument("-c", type=str, action = "store", default = "", help="test") 谢谢!
88 python  argparse 

3
在Python的argparse中多次使用相同的选项
我正在尝试编写一个脚本,该脚本接受多个输入源并对每个输入源都执行某项操作。像这样 ./my_script.py \ -i input1_url input1_name input1_other_var \ -i input2_url input2_name input2_other_var \ -i input3_url input3_name # notice inputX_other_var is optional 但是我不太清楚如何使用argparse。似乎已设置好,因此每个选项标志只能使用一次。我知道如何将多个参数与单个选项(nargs='*'或nargs='+')关联,但这仍然不允许我-i多次使用该标志。我该如何完成这项工作? 为了清楚起见,我最后想要的是一个字符串列表列表。所以 [["input1_url", "input1_name", "input1_other"], ["input2_url", "input2_name", "input2_other"], ["input3_url", "input3_name"]]

11
如何使用python argparse解析多个嵌套的子命令?
我正在实现一个命令行程序,其界面如下: cmd [GLOBAL_OPTIONS] {command [COMMAND_OPTS]} [{command [COMMAND_OPTS]} ...] 我已经阅读了argparse文档。我可以GLOBAL_OPTIONS使用add_argumentin实现为可选参数argparse。以及{command [COMMAND_OPTS]}using子命令。 从文档看来,我只能有一个子命令。但是如您所见,我必须实现一个或多个子命令。解析此类命令行参数使用的最佳方法是什么argparse?

4
如何使python argparse不带前缀的互斥组参数?
Python2.7 argparse仅在互斥组中接受可选参数(前缀): parser = argparse.ArgumentParser(prog='mydaemon') action = parser.add_mutually_exclusive_group(required=True) action.add_argument('--start', action='store_true', help='Starts %(prog)s daemon') action.add_argument('--stop', action='store_true', help='Stops %(prog)s daemon') action.add_argument('--restart', action='store_true', help='Restarts %(prog)s daemon') $ mydaemon -h usage: mydaemon [-h] (--start | --stop | --restart) optional arguments: -h, --help show this help message and exit --start Starts mydaemon daemon --stop Stops …
78 python  argparse 

1
带有必需子解析器的Argparse
我正在使用Python 3.4,正在尝试argparse与子解析器一起使用,并且我希望具有与Python 2.x中类似的行为,如果我不提供位置参数(以指示子解析器/子程序)我会收到一条有用的错误消息。即,随着python2我将得到以下错误消息: $ python2 subparser_test.py usage: subparser_test.py [-h] {foo} ... subparser_test.py: error: too few arguments 我正在required按照https://stackoverflow.com/a/22994500/3061818中的建议设置属性,但是这给我Python 3.4.0带来了错误: TypeError: sequence item 0: expected str instance, NoneType found-完全回溯: $ python3 subparser_test.py Traceback (most recent call last): File "subparser_test.py", line 17, in <module> args = parser.parse_args() File "/usr/local/Cellar/python3/3.4.0/Frameworks/Python.framework/Versions/3.4/lib/python3.4/argparse.py", line 1717, in parse_args …

2
python argh / argparse:如何将列表作为命令行参数传递?
我正在尝试使用argh库将参数列表传递给python脚本。可以接受类似以下内容的东西: ./my_script.py my-func --argA blah --argB 1 2 3 4 ./my_script.py my-func --argA blah --argB 1 ./my_script.py my-func --argA blah --argB 我的内部代码如下所示: import argh @argh.arg('--argA', default="bleh", help='My first arg') @argh.arg('--argB', default=[], help='A list-type arg--except it\'s not!') def my_func(args): "A function that does something" print args.argA print args.argB for b in …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.