I have this loop that reads lines from stdin until a newline is entered, however, this only works from typing in the input. How do I get the program to read lines from a redirec
Consider the following option
import sys
sys.stdin = open("input.txt", "r")
As others have mentioned, probably your condition line == '\n'
never holds true. The proper solution would be to use a loop like:
for line in sys.stdin:
stripped = line.strip()
if not stripped: break
lines.append(stripped)
ETA: Based on your comment that you're running into an infinite loop, you probably just don't have an empty line at the end of the file.
Use a pipe character:
input.input | python graph.py
If input.input
is in fact a file rather than a stream, use cat to create a stream from it:
cat input.input | python graph.py