git statusにスペースを含むプログラム名 ( など)を含めるにはどうすればよいdocoptですか? Perl スクリプトが Python スクリプトをディスパッチするセットアップがあります。Perl スクリプトはさまざまな方法で呼び出すことができます。簡単にするために次のように言いましょうprog sub1 sub2。したがって、Perl スクリプトの名前はprog. これで、sub2usingという Python スクリプトがディスパッチされsub2 --progName="prog sub1 sub2" [options]ます。(したがって、実際のプログラム名はsub2butではありません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。