如何将shell命令输出重定向到Python脚本输入?

前端之家收集整理的这篇文章主要介绍了如何将shell命令输出重定向到Python脚本输入?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这可能是一些非常基本的东西,但是我找不到一个很好的解决方案.
我需要编写一个可以接受管道输入的 python脚本,如下所示:
$some-linux-command | my_script.py

这样的:

cat email.txt | script.py

或者它将直接从sendmail通过我的.forward文件进行管道传输.这意味着如果输入文件有附件,它可能会比较大,并且它可能是一个电子邮件,稍后我将不得不在数据库中放置发件人,主题等等,但是我已经编写了数据库脚本在python中,这样就可以了.
主要的问题是如何捕获从管道流出的数据.

使用sys.stdin来读取输入.示例:

s.py的示例内容

import sys
data = sys.stdin.readlines()
print data

– 跑步:

user@xxxxxxx:~$cat t.txt
    alpha
    beta
    gamma

    user@xxxxxxx:~$cat t.txt | python ./s.py
    ['alpha\n','beta\n','gamma\n']

您也可以使用此Shebang将python脚本作为shell脚本:

#!/usr/bin/env python

并将许可更改为“a x”

user@xxxxxxx:~$cat t.txt |  ./s.py
 ['alpha\n','gamma\n']

猜你在找的Bash相关文章