我在我的程序中使用了python optparse模塊,並且在查找包含值列表的選項時很難找到一個簡單的方法。Python Optparse list
例如:
--groups one,two,three.
我希望能在一個列表格式來訪問這些值options.groups[]
。是否有一個optparse選項將逗號分隔值轉換爲列表?或者我必須手動執行此操作?
我在我的程序中使用了python optparse模塊,並且在查找包含值列表的選項時很難找到一個簡單的方法。Python Optparse list
例如:
--groups one,two,three.
我希望能在一個列表格式來訪問這些值options.groups[]
。是否有一個optparse選項將逗號分隔值轉換爲列表?或者我必須手動執行此操作?
看看option callbacks。回調函數可以通過解析值到列表的基本optarg.split(',')
美國洛特的答案已經被接受,但這裏的檔案代碼示例:
def foo_callback(option, opt, value, parser):
setattr(parser.values, option.dest, value.split(','))
parser = OptionParser()
parser.add_option('-f', '--foo',
type='string',
action='callback',
callback=foo_callback)
同樣,只爲求檔案的完整性,擴展上面的例子:
代碼(有微小的變化)將是:
def get_comma_separated_args(option, opt, value, parser):
setattr(parser.values, option.dest, value.split(','))
parser = OptionParser()
parser.add_option('-f', '--foo',
type='string',
action='callback',
callback=get_comma_separated_args,
dest = foo_args_list)
隨着optparse,得到列表值,您可以使用行動 '追加':
from optparse import OptionParser parser = OptionParser() parser.add_option("--group", action="append", dest="my_groups") (options, args) = parser.parse_args() print options.my_groups
然後調用你的程序是這樣的:
$蟒蛇demo.py --group一個--group 2 --group 3
[ '一', '二', '三化' ]