关于Linux:如何从piped grep输出读取python中的stdin

How to read from STDIN in python from a piped grep output

本问题已经有最佳答案,请猛点这里访问。

假设我有一个文本文件,grep"@" file.txt返回:

1
2
3
(1) preparing corpus @ Tue Apr 28 20:19:31 CEST 2015
(1.0) selecting factors @ Tue Apr 28 20:19:31 CEST 2015
(1.2) creating vcb file /media/2tb/ccexp/phrase-mkcls-mgiza-10clusters/work.en-ru/training/corpus/en.vcb @ Tue Apr 28 20:19:31 CEST 2015

我想使用我的python脚本来读取输出,使用如下方法:

1
grep"@" file.txt | python process.py

我试过这个(process.py,但它只读第一行:

1
2
3
import sys
logfile = raw_input()
print raw_input()

[OUT]:

1
(1) preparing corpus @ Tue Apr 28 20:19:31 CEST 2015

如何读取所有通过管道输入到python脚本的行?


正如@ashwinichaudhary所建议的:

1
2
3
import sys
log ="".join([i for i in sys.stdin])
print log