我通常这样做在Perl:

whatever.pl

while(<>) {
    #do whatever;
}

然后cat foo.txt | whatever.pl

现在,我想这样做在Python。我试图sys.stdin,但我不知道该怎么办,因为我在Perl已经完成。我怎样才能读取输入?

有帮助吗?

解决方案

尝试这种情况:

import fileinput
for line in fileinput.input():
    process(line)

其他提示

import sys
def main():
    for line in sys.stdin:
        print line
if __name__=='__main__':
    sys.exit(main())

像这样:

import sys

for line in sys.stdin:
    # whatever
import sys

for line in sys.stdin:
    # do stuff w/line

我讨厌击败死马,但我可能会建议使用纯函数?

import sys

def main(stdin):
  for line in stdin:
    print("You said: " + line.strip())

if __name__ == "__main__":
  main(sys.stdin)

此方法是很好的,因为主要是纯粹依赖于它的输入,并可以与单元任何服从线分隔的输入流的范例测试它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top