del*_*lta 16 python shell input pipe
这可能是非常基本的东西,但我找不到一个好的解决方案.我需要编写一个python脚本,可以接受来自这样的管道的输入:
$ some-linux-command | my_script.py
Run Code Online (Sandbox Code Playgroud)
这样的事情:
cat email.txt | script.py
Run Code Online (Sandbox Code Playgroud)
或者它将直接从sendmail通过我的.forward文件传送.这意味着输入文件可能是一个相对较大的东西,如果它有一个附件,它可能是一个电子邮件,以后我将不得不在数据库中放入发件人,主题等,但我已经编写了数据库脚本在python中,这部分就可以了.主要问题是如何捕获从管道流入的数据.
Dhr*_*hak 25
使用sys.stdin读取输入.示例:
s.py的示例内容:
import sys
data = sys.stdin.readlines()
print data
Run Code Online (Sandbox Code Playgroud)
- 跑步:
user@xxxxxxx:~$ cat t.txt
alpha
beta
gamma
user@xxxxxxx:~$ cat t.txt | python ./s.py
['alpha\n', 'beta\n', 'gamma\n']
Run Code Online (Sandbox Code Playgroud)
你也可以使用这个Shebang将python脚本作为shell脚本:
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
并将权限更改为'a + x'
user@xxxxxxx:~$ cat t.txt | ./s.py
['alpha\n', 'beta\n', 'gamma\n']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16338 次 |
最近记录: |