Python:重新启动optionparser列表

Python:重新启动optionparser列表,python,list,split,optparse,Python,List,Split,Optparse,我需要分析输入中的所有签名。 例如,我的输入可以是: $pythonscript.py-i4:64+0:0:1460:mss*20,7:mss、sok、ts、nop、ws:df:0 我想将此输入拆分为:和,,这样我会得到一个如下列表: ['4','64','0','1460','mss*20','7','mss','sok','ts','nop','ws','df','0'] 然后我可以做一个循环或索引来分析我的项目的位置。 我的程序在使用函数input()和re.split()时工作。 但当我

我需要分析输入中的所有签名。 例如,我的输入可以是:

$pythonscript.py-i4:64+0:0:1460:mss*20,7:mss、sok、ts、nop、ws:df:0

我想将此输入拆分为
,这样我会得到一个如下列表:

['4','64','0','1460','mss*20','7','mss','sok','ts','nop','ws','df','0']

然后我可以做一个循环或索引来分析我的项目的位置。 我的程序在使用函数
input()
re.split()
时工作。 但当我想用
optpass
将签名放在参数中时就不行了


如果有人能帮助我,那就太好了,谢谢你的帮助

我认为这很简单。神奇的是字符串函数:
replace
split
。函数
split
使用列表中给定的分隔符拆分字符串。但是您不能在解析的字符串中使用任何空格,因为
argparse
会认为它是另一个命令行参数

下面是
script.py的完整代码

#!/usr/bin/env python
# -*- coding: UTF-8 -*

import argparse

DESCRIPTION=u"My parser"
def InitParser():
    parser = argparse.ArgumentParser(DESCRIPTION)
    parser.add_argument(
        '-i', '--input', 
        help=u"Parameter splitted by comma or column"
    )
    return parser

def main():
    parser = InitParser()
    args = parser.parse_args()
    print "Parser args=", args
    print
    if args.input:
        lst = args.input.replace(':',',').split(',')
        print "Splited -i argument:"
        print(lst)
    else:
        print "Missing -i argument"
        return

if __name__ == "__main__":
    main()
程序输出:

C:\temp\tem>script.py -i 4:64+0:0:1460:mss*20,7:mss,sok,ts,nop,ws:df:0
Parser args= Namespace(input='4:64+0:0:1460:mss*20,7:mss,sok,ts,nop,ws:df:0')

Splited -i argument:
['4', '64+0', '0', '1460', 'mss*20', '7', 'mss', 'sok', 'ts', 'nop', 'ws', 'df', '0']

非常感谢你的帮助!!