使用python从重定向的stdin读取输入
我有一个循环,从stdin读取行,直到输入换行符,然而,这只在输入时起作用。如何让程序通过命令行从重定向的stdin读取行 例如:使用python从重定向的stdin读取输入,python,shell,stdin,Python,Shell,Stdin,我有一个循环,从stdin读取行,直到输入换行符,然而,这只在输入时起作用。如何让程序通过命令行从重定向的stdin读取行 例如: $ python graph.py < input.input ETA:根据您的评论,您正在运行一个无限循环,您可能只是在文件末尾没有空行 使用字符: input.input | python graph.py 如果input.input实际上是一个文件而不是一个流,请使用它创建一个流: cat input.input | python graph.py
$ python graph.py < input.input
ETA:根据您的评论,您正在运行一个无限循环,您可能只是在文件末尾没有空行
使用字符:
input.input | python graph.py
如果input.input
实际上是一个文件而不是一个流,请使用它创建一个流:
cat input.input | python graph.py
正如其他人所提到的,可能您的条件
line='\n'
永远不会成立。正确的解决方案是使用如下循环:
for line in sys.stdin:
stripped = line.strip()
if not stripped: break
lines.append(stripped)
考虑以下选项
import sys
sys.stdin = open("input.txt", "r")
程序挂起在循环的第二行,除非我用键盘中断它,否则不会退出。您确定您的文件以“\n”行结尾吗?你可能在这里遇到了一个无限循环。您的文件可能以
''
行结尾。这有什么帮助??
import sys
sys.stdin = open("input.txt", "r")