python argparse输入错误

时间:2014-09-10 01:19:12

标签: python bash argparse

我要指定以下两个参数:

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;,./ '

所以auth失败然后-bash./: Is a directory(pw的结尾)。

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

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

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

1 个答案:

答案 0 :(得分:3)

这不是Python问题。这是一个shell问题。

Bash shell在大多数情况下都对;字符进行了特定的解释,引用它是最安全可读的方法来避免这种解释。

没有Python或argparse库可以做到这一点,因为bash在Python看到它之前解释命令行。

如果你必须在命令行输入一个默认的虚拟密码,那就太多了......让它变得更简单,不包含任何shell元字符:-P。