python - 使用 python 从重定向的标准输入读取输入

标签 python shell stdin

我有一个从标准输入读取行直到输入换行符的循环,但是,这仅适用于输入输入。如何让程序通过命令行从重定向的标准输入中读取行?

例如:

$ python graph.py < input.input

这是我必须从输入中读取行的循环:

while 1:
     line = sys.stdin.readline()
     if line == '\n':
         break
     try:
       lines.append(line.strip())
     except:
       pass

最佳答案

正如其他人所提到的,您的条件 line == '\n' 可能永远不会成立。正确的解决方案是使用如下循环:

for line in sys.stdin:
  stripped = line.strip()
  if not stripped: break
  lines.append(stripped)

关于python - 使用 python 从重定向的标准输入读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9589092/

相关文章:

python / celery : how can I kill subtasks when killing a parent task?

shell - 如何定期保存程序输出的最后一行?

node.js - 如何列出脚本中分离的进程?

linux - 如何递归地查看目录中的文件,删除特定模式并将其写入同一层次结构中的新文件名

Android通知到kivy中的通知栏

python - 无法弄清楚如何检查两个 Sprite 之间的掩码碰撞

c++ - gdb 在 Emacs 中不接受 stdin 重定向

javascript - 如何在 node.js 中读取整个文本流?

python - 删除 pvplot 中网格热图的左侧 ColorBar

ruby - Ruby 中 STDIN 的最佳实践?