我是python的新手,但它适用于不同的语言。
#!/usr/bin/python
import sys
import netaddr
print(sys.argv[1])
cidrs = netaddr.iprange_to_cidrs(sys.argv[1])
print cidrs
输出:
./script.py \"223.252.0.0\",\"223.252.127.255\"
"223.252.0.0","223.252.127.255"
Traceback (most recent call last):
File "./script.py", line 7, in <module>
cidrs = netaddr.iprange_to_cidrs(sys.argv[1])
TypeError: iprange_to_cidrs() takes exactly 2 arguments (1 given)
答案 0 :(得分:1)
如果您真的坚持使用包含逗号的单个命令行参数,
#!/usr/bin/python
import sys
import netaddr
input = sys.argv[1].split(",")
print("%r" % input)
cidrs = netaddr.iprange_to_cidrs(*input)
print cidrs
这将创建一个包含sys.argv[1]
单个字符串中两个字符串的Python列表,并将其传递给iprange_to_cidrs
。这仅在第一个参数中只有一个逗号时才有效。我的建议是使用
cidrs = netaddr.iprange_to_cidrs(sys.argv[1], sys.argv[2])
像其他人一样已经开始争论。