This question already has answers here:
How do you read from stdin?

(22个答案)


5年前关闭。




假设我有一个文本文件,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()

[出]:
(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

关于python - 如何从管道式grep输出中读取python中的STDIN ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30344182/

10-14 18:09
查看更多