如何在 中包含带有空格(如git status
)的程序名称docopt
?我有一个 Perl 脚本分派 Python 脚本的设置。Perl 脚本可以通过多种方式调用,为了简单起见:prog sub1 sub2
. 所以 Perl 脚本被命名为prog
. 它现在调度名为sub2
using的 Python 脚本sub2 --progName="prog sub1 sub2" [options]
。(所以真正的程序名不是sub2
but prog sub1 sub2
)。我尝试使用 来实现此方案docopt
,例如:
"""Usage: %progName% [-h]
Options:
-h --help
"""
from docopt import docopt
import sys
if __name__ == '__main__':
progName=sys.argv[0]
for i, arg in enumerate(sys.argv):
if arg.startswith('--progName='):
ind=arg.index("=")+1
progName=arg[ind:]
del sys.argv[i]
break
doc=__doc__.replace('%progName%',progName)
args = docopt(doc)
print(args)
但是,这不适用于命令名称中的空格 ( prog sub1 sub2
)..