- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想将数据传递给脚本,就像这样
if __name__ == '__main__':
usage = 'python pull.py [-h <host>][-p <port>][-r <risk>]arg1[,arg2..]'
parser = OptionParser(usage)
parser.add_option('-o', '--host', dest='host', default='127.0.0.1',
┊ help='mongodb host')
parser.add_option('-p', '--port', dest='port', default=27017,
┊ help="mongodb port")
parser.add_option('-r', "--risk", dest='risk', default="high",
┊ help="the risk of site, choice are 'high', 'middle', 'low', 'all'")
options, args = parser.parse_args()
在这个脚本中,如果我想设置 ./test.py -r 高和中,我该如何设置 ['high', 'middle']
在optparse
?
最佳答案
https://docs.python.org/2/library/optparse.html#standard-option-types
"choice"
options are a subtype of "string" options. The choices option attribute (a sequence of strings) defines the set of allowed option arguments.optparse.check_choice()
compares user-supplied option arguments against this master list and raisesOptionValueError
if an invalid string is given.
例如:
parser.add_option('-r', '--risk', dest='risk', default='high',
type='choice', choices=('high', 'medium', 'low', 'all'),
help="the risk of site, choice are 'high', 'middle', 'low', 'all'")
如果您希望能够将多个值传递给 --risk
,你应该使用action="append"
:
An option’s
action
determines what optparse does when it encounters this option on the command-line. The standard option actions hard-coded into optparse are:...
"append"
[relevant:type
,dest
,nargs
,choices
]The option must be followed by an argument, which is appended to the list in
dest
. If no default value fordest
is supplied, an empty list is automatically created when optparse first encounters this option on the command-line. Ifnargs
> 1, multiple arguments are consumed, and a tuple of lengthnargs
is appended todest
.
还要注意组合 action="append"
与 default=['high']
,因为你最终会在 options.risk
中始终处于“高”状态。 .
parser.add_option('-r', '--risk', dest='risk', default=[], nargs=1,
type='choice', choices=('high', 'medium', 'low'), action='append',
help="the risk of site, choice are 'high', 'middle', 'low'")
用法:
>>> options, args = parser.parse_args(['-r','high','-r','medium'])
>>> options.risk
['high', 'medium']
关于python optparse 如何设置列表的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31069279/
我正在尝试使用 optparse-applicative程序中的库应根据参数的数量执行不同的操作。 例如,计算周长的程序的参数解析: module TestOpts where import Opti
./hello_world -c arg1 arg2 arg3 是否可以通过编码使选项 -c 仅获得两个参数(arg1 和 arg2)? parser.add_option("-c",
我正在使用 optparse,最近遇到以下问题 - 我想将目录名称作为参数传递。像这样的东西: ./script.py --dir c:\a\b 但是,optparse 消除了“\”符号,因此相关变量
我有一个 mysql 数据库,我正在尝试打印特定学生的所有测试结果。我正在尝试创建一个命令行,在其中输入用户名,然后它将显示他/她的测试结果。我已经访问过此页面,但无法得到答案。 optparse a
通常,可以不带任何参数地调用 optparse 的方法 parse_args。但是,如果需要提供与 sys.argv 不同的参数集,则可以传递给 parse_args。 但是,如果需要将字符串而不是列
我正在开发一个接收一些参数并希望其中一些参数成为必需参数的程序,但我遇到了一些问题: 我确实需要使代码与 Python 2.4.x 兼容,所以我(至少是这么认为)只能使用 optparse 希望避免代
有没有办法让下面的工作?我正在寻找的是根据另一个选项的值获得一个选项的值。 import optparse parser = optparse.OptionParser() parser.add_op
请说明为什么下面的代码给出了错误,尽管两者都表示相同的选项。 In [3]: parser = optparse.OptionParser() In [4]: parser.add_option("-
我是 Python 的新手,并且在玩 optparse。我有这样的解析器功能: def parse(argv): """Option parser, returns the options l
我正在尝试使用 optparse,但遇到问题。 我的脚本用法是:script 我不打算添加任何选项字符串,例如:script -f 或script --file 有什么方法可以选择不传递参数字符串
我编写了一个最多接受 4 个选项和 2 个参数的函数。选项包括 -1、-2、-3 和 -u。默认情况下,它们的值分别设置为 true、true、true 和 false,但启用任何选项都会导致该值翻转
我想将数据传递给脚本,就像这样 if __name__ == '__main__': usage = 'python pull.py [-h ][-p ][-r ]arg1[,arg2..]'
if __name__=='__main__': parser = OptionParser() parser.add_option("-i", "--input_file",
我遇到了以下有趣的错误: parser.add_option("-n", "--number", metavar="NUMBER", type="int", hel
我目前正在学习如何使用 Python optparse 模块。我正在尝试以下示例脚本,但 args 变量结果为空。我使用 Python 2.5 和 2.6 进行了尝试,但无济于事。 import op
我试图更好地了解 optparse,但我很难理解为什么以下代码会这样运行。我在做傻事吗? import optparse def store_test(option, opt_str, value,
我正在编写一个 python 脚本,我希望它能够从命令行调用并作为库函数导入。理想情况下,命令行选项和函数应使用同一组默认值。允许我在两个地方重复使用一组默认值的最佳方法是什么? 这是具有重复默认值的
采用以下相当标准的代码: from optparse import OptionParser opts = OptionParser() opts.ad
当使用 optparse 时,我想在一个选项之后获取整个字符串,但我只获取到第一个空格的一部分。 例如: python myprog.py --executable python someOtherP
是否有 optparse (command line option parser) 的 C# 端口?来自 Python 的模块在一些 OSI-approved license 下可用? 最佳答案 你看
我是一名优秀的程序员,十分优秀!