Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从重定向的stdin读取输入_Python_Shell_Stdin - Fatal编程技术网

使用python从重定向的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

我有一个循环,从stdin读取行,直到输入换行符,然而,这只在输入时起作用。如何让程序通过命令行从重定向的stdin读取行

例如:

$ 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")