问题描述
我试图编写一个脚本来查找以字符串形式给出的范围内的IP地址(例如“ 10.10.225.20-10.10.225.29”),然后在iter_iprange
中找到了函数netaddr
包。但是,当我尝试遍历生成器的长度时,会有一些奇怪的行为。
考虑以下代码:
generator = netaddr.iter_iprange('192.168.1.200','192.168.1.230',step=1)
length = len(list(generator))
try:
for i in range(0,length):
print(i,next(generator))
except stopiteration as s:
print("Iteration stopped: ",s)
根本不进行迭代。
但是当我定义时它确实起作用:
generator = netaddr.iter_iprange('192.168.1.200',step=1)
generator2 = netaddr.iter_iprange('192.168.1.200',step=1)
length = len(list(generator2))
我什至无法复制生成器,仅此一项就会从第一个next()
开始抛出异常。
我不知道生成器在内部如何工作,但是那一定是一些底层的东西,也许您可以帮助使我的代码不那么丑陋。我认为我没有正确使用它们。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)