【发布时间】:2017-08-31 04:39:25
【问题描述】:
我想执行一个对多个 IP 地址执行某些操作的 python 脚本。这些地址可以通过命令行给出。
我使用以下命令进行解析:
parser.add_argument('--IP',dest='Adresses',help='some Ips',
default=['192.168.2.15','192.168.2.3'],type=list,nargs='+')
但是,当我通过如下命令运行脚本时:
python script.py --IP 192.168.2.15,192.168.2.3
它在每个字符之后拆分字符串,如果我使用空格而不是逗号,则会发生相同的行为,因此如果我将其打印出来,则会发生以下输出
[['1', '9', '2', '.', '1', '6', '8', '.', '2', '.', '1', ' 5'], ['1', '9', '2', '.', '1', '6', '8', '.', '2', '.', '3']]
我想要的是:
['192.168.2.15','192.168.2.3']
如默认参数中所述
所以有两件事我在这里没有工作:
- 如何将多个字符串解析为 argparse 但在一个参数下,以便将其分隔在一个列表中
- 如何停止按字符拆分
感谢您的帮助
【问题讨论】:
-
您可以将它们重新加入字符串...
["".join(x) for x in ip] -
不给参数的情况下会不会崩溃或者改变,必须引用默认参数?
-
嗯,它有效,但我不明白为什么。谢谢你:)