Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在docopt中使用多个参数_Python_Python 3.x_Docopt - Fatal编程技术网

Python 在docopt中使用多个参数

Python 在docopt中使用多个参数,python,python-3.x,docopt,Python,Python 3.x,Docopt,我正在尝试使用docopt,以便用户可以进行如下输入: python3 -p argum1 -d argum2 [-u arg_facul] 参数argum1和argum不能是位置参数;前两个参数是必需的,第三个是可选的 我已经有了这个: """ Usage: pyprogram.py (-p PASS | --pass=PASS) (-d DICT | --dict=DICT) [-u USER --user=USER] Arguments:

我正在尝试使用docopt,以便用户可以进行如下输入:

python3 -p argum1 -d argum2 [-u arg_facul]
参数argum1和argum不能是位置参数;前两个参数是必需的,第三个是可选的

我已经有了这个:

""" 
Usage:
         pyprogram.py    (-p PASS | --pass=PASS) (-d DICT | --dict=DICT) [-u USER --user=USER]  

    Arguments:


    Options:
        -p              demand argument 1
        -d              demand argument 2 
        -u              may have this agrument or not
"""
输出为:

...$ python3 pyprogram.py -d dict.txt -p passwd.txt -u root 
{'--dict': None,  '--pass': None,  '-d': True,  '-p': True,  '-u': True,  'DICT': 'passwd.txt', 'PASS': 'dict.txt', 'USER': 'root'}
我希望输出是:

... $ python3 pyprogram.py -d dict.txt -p passwd.txt -u root 
{'--dict': None,  '--pass': None,  '-d': True,  '-p': True,  '-u': True,  'DICT': 'dict.txt',  'PASS': 'passwd.txt', 'USER': 'root'}
我已经离开了。 Docopt对太空蚂蚁标签非常挑剔

这就是未来的情况

"""
Usage:
  passcrack_end.py -p <passw> -d <dic> [-u <user>]

Arguments:
  <passw>   ficheiro onde se encontram as passwords encriptadas - shadow
  <dic>     ficheiros com o dicionario das possiveis palavras passe 
  <user>    Utilizador para o qual quer encontrar a password

Option:
  -p pp     opção obrigatória
  -d dd     opção obrigatória
  -u uu     campo facultativo
"""
输出将是:

{
  "-d": "derivation", 
  "-p": "panto", 
  "-u": "ume"
}
如果使用以下参数调用程序:

-d derivation -p panto -u ume
 -p panto -u ume -d derivation
输出将是相同的:

{
  "-d": "derivation", 
  "-p": "panto", 
  "-u": "ume"
}

你考虑过使用argparse吗?我必须使用docopt。。。人们告诉我docopt比argparse更干净,线条更少,更容易…问题是你在这里暗示和排序。因此,在通过考试后,必须提交口述。这就是为什么你没有得到你想要的订单。所以我可以这样做,这样我就不会让你把args整理好了?