Python : 重新拆分一个选项解析器列表
Python : resplit an optionparser list
我需要分析输入的所有签名。
例如我的输入可以是:
$ python script.py -i 4: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()
时,我的程序可以运行。
但不是当我想把我的签名放在 optparse
.
的参数中时
如果有人能帮助我那就太好了,谢谢你的帮助。
我觉得很简单。神奇的是字符串函数: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']
我需要分析输入的所有签名。 例如我的输入可以是:
$ python script.py -i 4: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()
时,我的程序可以运行。
但不是当我想把我的签名放在 optparse
.
如果有人能帮助我那就太好了,谢谢你的帮助。
我觉得很简单。神奇的是字符串函数: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']