微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将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']

原文地址:https://www.jb51.cc/bash/386401.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐