【问题标题】:docopt in python3 argumentes definitionspython3参数定义中的docopt
【发布时间】:2018-03-28 19:03:45
【问题描述】:

我正在尝试使用 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(大多数 最近通话最后):文件“passwdcrack.py”,第 17 行,在 arguments = docopt.docopt(doc, version='0.0001') AttributeError: 'module' object has no attribute 'docopt'

有人可以帮助我吗? 谢谢

【问题讨论】:

    标签: python python-3.x docopt


    【解决方案1】:

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

    【讨论】:

    • @PedroMendes,这是唯一合乎逻辑的解决方案。如果您想查看要导入的内容,请使用import the_module,然后the_mdoule.__file__ 将准确显示您导入的内容
    • 好的,现在没有错误了。现在它只是不接受我在 CLI 上给出的论点
    • 到底发生了什么?
    【解决方案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 推导-p panto -u ume

    输出将是:

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

    如果你用这个参数调用程序:

    -p panto -u ume -d 推导

    输出将是相同的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多