为什么我的代码每隔cidr范围打印一次?

时间:2019-07-31 13:47:49

标签: python python-3.x

我在txt文件中逐行列出了cidr范围。我不知道为什么每隔一行打印一次。

import ipaddress
from sys import argv

script, file1 = argv

with open(file1) as x:
    for reading in x:
        line = x.readline().strip()
        net4 = ipaddress.ip_network(line)
        for i in net4:
            print(i)

我正在尝试打印所有cidr范围内的每个IP。

2 个答案:

答案 0 :(得分:5)

for reading in x一次遍历x一行。

但是您忽略reading并阅读另一行, x.readline().strip()

相反,您可以这样做:

with open(file1) as x:
    for line in x:
        net4 = ipaddress.ip_network(line.strip())
        for i in net4:
            print(i)

答案 1 :(得分:3)

您每次循环迭代读取两行。一次使用import React, { useRef, useEffect } from 'react'; const MyComponent = ({ navigation }) => { const { state } = navigation; const { params = {} } = state; const description = useRef(params.description); const setParams = useRef(navigation.setParams); useEffect(() => { setParams.current({ headerTitle: description.current }); }, [description, setParams]); return (...); } MyComponent.navigationOptions = ({ navigation }) => ({ title: navigation.getParam('headerTitle') }) ,一次使用for reading in x:

默认情况下,一个line = x.readline()循环遍历文件对象(在这种情况下,例如for)读取每一行。差不多等于x直到文件用完为止。

所以你可以做

.readline()

而不是读另一行。