使用argparse add_argument()检查位置参数字符串中的特定字符

时间:2013-11-23 00:14:45

标签: python command-line-arguments argparse

我是一个蟒蛇新手。我试图使用argparse为我的一个程序解析命令行参数。当我运行程序时,我想将其运行为:
prog.py /command:write

现在对于我在这里给出的命令行参数(/ command:write),我使用argparse来解析它。约束是我只希望命令行参数包含一个或多个这些:字符,数字,/,:, - ,。,\,_
如何在add_argument()函数中指定此约束?

1 个答案:

答案 0 :(得分:0)

您可以在sys.argv使用之前过滤parse_args

import sys
...
def foo(a):
   return a.replace('/','--').replace(':','=')

# '/command:write' => '--command=write'

argv = [foo(a) for a in sys.argv]
parse.parse_args(argv)

使用re.sub是否需要更复杂的替换