python - 如何从管道 grep 输出中读取 python 中的 STDIN

标签 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 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/

相关文章:

c - 从 C 程序编写 bash 应用程序的 STDIN

bash - 遍历子目录并对某些文件执行 awk 脚本

git bash 自动完成在 Windows 7 x64 上很慢

linux - 使用 TR 从字符串中删除控制字符

python - 在 pypi 上给定一个模块,有没有办法反省模块并显示所有依赖项?

python - IMAP电子邮件IDLE停止等待超时持续时间,而是在Python中立即循环

python - 从旧数据库复制到 Couchdb 中的新数据库

python - Pandas :计算与分组平均值的差异

linux - tcsh shell linux 非法变量名

java - 如何对 PDF 文件中的图像进行下采样?