蟒猫(回波)等效stdin的

问题描述 投票:3回答:2

我认为这一计划将通过线路回声我的控制台输入线:

import os, sys

for line in sys.stdin:
    print line

不幸的是它等待EOF(按Ctrl + d),然后它产生输出。我应该如何修改我的程序由一线得到输出线?

python echo stdin
2个回答
9
投票

Python的2.ch:

for line in iter(sys.stdin.readline, ''):
    print line,

Python的x.ch:

for line in iter(sys.stdin.readline, ''):
    print(line, end='')

查看iter()的文件有两个参数,它实际上已经从这样一个文件的例子之一读取。


4
投票

Python的2.ch:

while True:
  sys.stdout.write(sys.stdin.readline())

Python的x.ch:

while True:
  print(sys.stdin.readline(), end = "")

当您使用for line in file:语法,Python的管理缓冲对你来说,这意味着你有过多少行会被读取之前你的循环开始执行的控制。当你调用file.readline(),它将从文件中读取一行并执行你的循环一次。

© www.soinside.com 2019 - 2024. All rights reserved.