Как включить имена программ с пробелами (например, git status
) в docopt
? У меня есть настройка, где скрипт Perl отправляет скрипт Python. Сценарий Perl можно назвать многими способами, скажем, для простоты: prog sub1 sub2
. Таким образом, скрипт Perl имеет имя prog
. Теперь он отправляет скрипт Python под названием sub2
с использованием sub2 --progName="prog sub1 sub2" [options]
. (Таким образом, имя реальной программы не sub2
, но prog sub1 sub2
). Я пытался реализовать эту схему, используя docopt
, например:Включить пробелы в имени программы в 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
) ..