bash - bash python 如何从 shell 读取 stdin,并将stdout发送到 shell 和 file

  显示原文与译文双语对照的内容
79 5

我想让 python 脚本从 shell ( bash ) 读取标准文件,并将标准文件发送到 shell 以及重定向文件。我尝试了以下操作:

$ cat test.py
#!/usr/bin/python
val = raw_input("enter val:")
print val
$./test.py | tee out
testing
enter val: testing
$ cat out
enter val: testing

由于某些原因,在键入输入后打印raw_input提示,这意味着我在键入时无法看到提示。使用bash脚本,我可以得到类似于工作的东西。

$ cat test.sh
#!/bin/bash
echo"enter val:"
read val
echo $val
$./test.sh | tee out
enter val: testing
testing
$ cat out
enter val: testing
时间:原作者:0个回答

120 4
#!/usr/bin/python
import sys
print"enter val:",
sys.stdout.flush()
val = raw_input()
print val

或者

#!/usr/bin/python
import sys
sys.stdout = sys.stderr
val = raw_input("enter val:")
sys.stdout = sys.__stdout__
print val
原作者:
79 1

看到这个 Bug,看起来raw_input将它的提示符写到。

http://bugs.python.org/issue1927

原作者:
...