如何从管道grep输出读取python中的STDIN
假设我有一个文本文件,如何从管道grep输出读取python中的STDIN,python,linux,bash,grep,Python,Linux,Bash,Grep,假设我有一个文本文件,grep“@”file.txt返回: (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
grep“@”file.txt
返回:
(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脚本,通过以下方式读取输出:
grep "@" file.txt | python process.py
我尝试过这个(process.py
),但它只读取第一行:
import sys
logfile = raw_input()
print raw_input()
[out]:
(1) preparing corpus @ Tue Apr 28 20:19:31 CEST 2015
我如何读取管道传输到python脚本中的所有行?正如@AshwiniChaudhary所建议的:
import sys
log = "".join([i for i in sys.stdin])
print log
对于sys.stdin中的行:
谢谢@AshwiniChaudhary