2016-05-28 5 views
0

私はdocoptとpython 2.7を使用しています。 vimに--のようなものを実装したいと思います。 man vimから:ありがたいことにdocoptで「end of options」を使うにはどうすればいいですか?

--  Denotes the end of the options. Arguments after this will be handled as a file 
     name. This can be used to edit a filename that starts with a '-'. 

、docoptはすでにこれを実装していますが、それは私に私の引数リスト内の余分な'--'を与えます。たとえば、この短いPythonスクリプト取る:私は

python doc.py file.txt -- 1 2 3 -w 

でこれを呼び出した場合

"""Usage: 
    doc.py FILE [ARGUMENTS ... ] 
    doc.py FILE [options] [ARGUMENTS ... ] 
Options: 
    -h --help  Show this screen. 
    -d   Debug mode. 
    -f FILE  Open FILE 
    -w FILE  Log to FILE 
    --safe  Do not allow shell access 
""" 

from docopt import docopt 

def main(): 
    print(args["ARGUMENTS"]) 

if __name__ == "__main__": 
    args = docopt(__doc__, version="V alpha 0.1") 
    main() 

を私はこれを取得:

私はそれを与えることを期待
['--', '1', '2', '3', '-w'] 

['1', '2', '3', '-w'] 

私は間違っていますか?

+0

'--'の直後に何かを入れるつもりですか? –

+0

@ClaytonWahlstromいいえ、私はそれについて計画していませんでした。今の場合、私はargsをオプションとして解釈しようとします。それが働くための唯一の方法だとすれば、私はうまくいくだろう。 – DJMcMayhem

答えて

0

私は専門家ではありませんが、すべての用途で--をオプションにしてみてください。

doc.py FILE [options] [--] [ARGUMENTS ... ] 

オプションを入力するかしないかを指定して、引数で開始できます。最初に--が存在する場合はそれを探します。

これが動作するかどうかを教えてください。

関連する問題