【发布时间】:2015-11-23 13:05:07
【问题描述】:
(我想)我知道如何从管道中读取数据。我的意思是像这样调用 bash
echo Bähm | ./script.py
这个 Python3 脚本可以使用它。
#!/usr/bin/env python3
import sys
x = sys.stdin.read()
if x:
print(x)
else:
print('no pipe')
sys.exit()
但是当我只是在 bash 上这样做时
./script.py
没有任何反应,因为它等待输入。
所以我想检查(在启动脚本时)是否有来自管道的输入。但我不知道为什么size 或len 对sys.stdin 或sys.stdin.buffer 不起作用。
也许 Python 版本 2 和 3 在处理上也存在差异?
【问题讨论】:
-
这是 Python-3.x 特有的吗?我将在标签编辑中放入批准或不批准。
-
我对 Python2 一无所知。我的例子是 Python3。它们之间通常存在相关差异。这就是为什么我试图让我的问题尽可能具体。还有很多关于 SO 的 Python 问题将 2 和 3 混为一谈,让读者感到困惑。
标签: python python-3.x pipe