【问题标题】:python argparse input errorpython argparse输入错误
【发布时间】:2014-11-03 12:59:34
【问题描述】:

我有以下两个参数要指定:

parser.add_argument("-s", "-server", help="specify the server", required=True)
parser.add_argument("-pw", "-password", help="Provide your Admin Password", required=True)

这很好用,只是我的首选“测试”/虚拟密码发现了一些问题。

我的虚拟密码是90opl;./

如果我运行./test.py -s testserver -pw 90opl;./

我收到一个错误,因为它没有将 90opl;./ 解释为 ' 90opl;,./ '

所以身份验证失败,然后-bash./: Is a directory(密码结束)。

要解决这个问题,我必须运行 ./test.py -s testserver -pw '90opl;./' - 也就是必须使用单引号。

有没有办法解决这个问题? 我似乎无法在网上找到答案。我试过指定type=str 无济于事。

很抱歉,如果这有一个明显的修复,但我有点像 python 菜鸟。

【问题讨论】:

    标签: python bash argparse


    【解决方案1】:

    这不是 Python 问题。这是一个外壳问题。

    Bash shell 在大多数情况下对; 字符给出了特定的解释,并且引用它是避免这种解释的最理智和可读的方法。

    Python 或 argparse 库对此无能为力,因为 bash 在 Python 看到命令行之前就解释了它。

    如果您必须在命令行中输入一个默认的虚拟密码无数次...让它成为一个更简单的密码,不包含任何 shell 元字符 :-P。

    【讨论】:

    • 嘿,我明白了。我知道了。那好吧。我将根据需要调整我的虚拟密码。谢谢:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2017-08-20
    • 2018-07-21
    相关资源
    最近更新 更多