Python programımın bir borudan girdi almasını ve daha sonra terminalden girdi almasını istiyorum. this SO mesajını okuduktan sonra, sys.stdin'i değiştirmek için/dev/tty açmayı denedim.Python: sys.stdin değeri değiştiğinde GNU okuma hattını nasıl kullanabilirim?
import sys
import readline
def tty_input(prompt):
with open("/dev/tty") as terminal:
sys.stdin = terminal
user_input = input(prompt)
sys.stdin = sys.__stdin__
return user_input
Bu yaklaşımdaki sorun! = Sys .__ stdin__ sys.stdin zaman GNU taleb çalışmıyor olmasıdır. İmleci hareket ettirmek veya geçmişte gezinmek için ok tuşlarını kullanamıyorum. Ben here teslim edildi bu çok sorun için bir yama okudum, ama ben hiçbir şey geldiğini tahmin ediyorum.
Sys.stdin değerini değiştirmeden, hem bir borudan hem de terminalden girişi kabul etmenin bir yolu varsa, önerilere açığım.
Ayrıca bkz bu hata raporu: http://bugs.python.org/msg286521 – src