Q:

Why does my code print every second cidr range?

I have a line-by-line list of cidr ranges in a txt file. I can't figure out why every second line gets printed.
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)

I'm trying to print every individual IP within all cidr ranges.

A:

for reading in x is iterating through x one line at a time.
But you're ignoring reading and reading another line, with
x.readline().strip(). 
Instead you can do:
with open(file1) as x:
    for line in x:
        net4 = ipaddress.ip_network(line.strip())
        for i in net4:
            print(i)

A:

You're reading two lines per loop iteration. Once with for reading in x: and again with line = x.readline()
A for loop iterating through a file object (such as x in this case), by default, reads every line. It's more or less equivalent to just doing .readline() until the file runs out of lines.
So you can just do
line = reading.strip()

instead of reading another line.

