Par exemple, si j'ai ce code:Est-il possible que python ouvre un terminal et y écrive?
subprocess.call(['gnome-terminal'])
Est-il possible d'avoir des chaînes de sortie de python à ce terminal spécifique qui vient d'être ouvert? Merci!
Par exemple, si j'ai ce code:Est-il possible que python ouvre un terminal et y écrive?
subprocess.call(['gnome-terminal'])
Est-il possible d'avoir des chaînes de sortie de python à ce terminal spécifique qui vient d'être ouvert? Merci!
Peut-être, mais il est plus facile d'exécuter un processus personnalisé dans le terminal subordonné. Par exemple, étant donné sserv.py
de la example server in the documentation la commande:
gnome-terminal -e "python ./sserv.py"
se fera un plaisir de chat sur le port 9999 avec vous. Étant donné un sserv.py
plus complexe, il pourrait faire tout ce que vous voulez (tout ce qui est terminalish, c'est).
+1: Bien rangé. Achevée. Simple. –
Je pense que PExpect peut faire pour vous:
pexpect est essentiellement un modèle système correspondant. Il exécute des programmes et des sorties de montres . Lorsque la sortie correspond à un modèle , Pexpect peut répondre comme si un humain était en train de taper des réponses. Pexpect peut être utilisé pour l'automatisation, le test et le raclage d'écran. Pexpect peut être utilisé pour automatiser des applications interactives de la console comme ssh, ftp, passwd, telnet, etc. Il peut également être utilisé pour contrôler les applications Web via
lynx
,w3m
, ou un autre navigateur Web basé sur le texte . Pexpect est pur Python. Contrairement à d'autres modules Expect-like pour Python Pexpect n'a pas besoin de TCL ou Expect ni nécessitent des extensions C à compiler. Il devrait fonctionner sur n'importe quelle plate-forme que prend en charge le module standard Python pty .
Votre réponse fonctionne pour * lecture *, mais pas pour * écriture *. – Arafangion
@Arafangion En fait PExpect _DOES_ supporte l'écriture, et le fait bien. Il peut même écrire sur les entrées de mot de passe PAM, qui ne fonctionnent généralement pas avec stdin. PExpect imite le périphérique tty IIRC –
Qu'en est-il de child.sendline() etc dans http://pexpect.svn.sourceforge.net/viewvc/pexpect/trunk/pexpect/examples/monitor.py?revision=498&view=markup? –
C'est possible ... Mais que voulez-vous faire *? – Arafangion