对于此问题,没有通用的解决方案。最好的资源似乎是此邮件列表线程。
基本上,管道到程序中是将程序的管道连接
stdin到该管道,而不是终端。
邮件列表线程为* nix提供了两个相对简单的解决方案:
打开/ dev / tty替换sys.stdin:
sys.stdin = open('/dev/tty')a = raw_input('prompt: ')运行脚本时,将stdin重定向到另一个文件句柄,并从中读取:
sys.stdin = os.fdopen(3)a = raw_input('prompt: ')$ (echo -n test | ./x.py) 3<&0以及使用诅咒的建议。请注意,邮件列表线程是 古老的, 因此您可能需要修改选择的解决方案。



