pty.openpty() / subprocess.Popen() / Problème read/write
Bonjour,
La commande :
python3 /opt/app-root/lib/python3.9/site-packages/ATL/TestRunner.py --config=E2E/Global/AUTOTEST1.tsdef
Affiche :
Connect BRTE500 on connector J21
yes ?
(je dois répondre par "yes" pour continuer)
J'ai réalisé un script pour lancer plusieurs commandes comme celle-ci à la suite.
Mon soucis du moment est que je dois répondre "yes" chaque fois que la réponse est "yes ?".
Je me permets de vous présenter mon premier jet mais ce script semble avoir un problème car je ne lis jamais le premier "yes ?"
Il affiche :
Affiche et reste bloqué sur :
Connect BRTE500 on connector J21
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
import pty
import os
import subprocess
def run_atl_test_runner():
command = [
"python3",
"/opt/app-root/lib/python3.9/site-packages/ATL/TestRunner.py",
"--config=E2E/Global/AUTOTEST1.tsdef"
]
try:
master, slave = pty.openpty() # Création du pseudo-terminal
process = subprocess.Popen(
command,
stdin=slave,
stdout=slave,
stderr=subprocess.PIPE,
text=True,
)
os.close(slave)
while True:
output = os.read(master, 2048).decode() # Lire la sortie
print(output, end="") # Afficher la sortie
if "yes ?" in output:
os.write(master, "yes\n") # Envoyer "yes" en réponse
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
run_atl_test_runner() |
En vous remerciant d'avoir lu jusque là.
Michel