docopt-in-python3论证定义

2024-04-27 09:48:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用docopt。在

我想这样称呼我的程序:

python3 my_script -p argum1 -d argum2 -u faculm

-u不是强制性的,但“-p”和“-d”是强制性的。在

i have allready made this:

""" 
Usage:
    passwdcrack.py -p=<password>, 
    passwdcrack.py -d=<dicionario>       
    passwdcrack.py [-u=<user>]        

Options:
    -h --help       mostra este ecrã
    --version       Mostra a versão
    -p=<password>   indicar o caminho para o ficheiro tipo */etc/shadow
    -d=<dicionario> indicar o caminho para o ficheiro com lista de Passw
    -u=<user>       indica o utilizador para ser analisado
"""
import docopt

if __name__ == '__main__':
    arguments = docopt.docopt(__doc__, version='0.0001')
    print (arguments)

但当我叫它的时候它给我的是:

$ python3 passwdcrack.py -d papa -d pfpf -u madona Traceback (most recent call last): File "passwdcrack.py", line 17, in arguments = docopt.docopt(doc, version='0.0001') AttributeError: 'module' object has no attribute 'docopt'

有人能帮我吗? 谢谢


Tags: pydocversionpassworddocoptargumentspython3para
2条回答

我发现了。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
"""

注意空间。在选项中,缩进是2个空格-d

如果使用以下参数调用程序:

-d derivation -p panto -u ume

输出将是:

^{pr2}$

如果使用以下参数调用程序:

-p panto -u ume -d derivation

输出将相同:

^{pr2}$

您的路径中有一个名为docopt.py的文件,该文件将被导入,而不是实际的docopt模块。你需要找到它并重命名或删除它。在

相关问题 更多 >