Forum
>>
Programmazione Python
>>
Files e Directory
>>
subprocess: read output write input
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da eugenio |
2017-09-25 10:13:14 - subprocess: read output write input
|
Salve a tutti.
Usando subprocess per eseguire comandi il cui output deve essere visualizzato e l'inserimento di una conferma inserita, ho verificato un risultato che non mi spiego. dato uno script shell #!/bin/bash # echo echo "**********************************************************" echo "* *" echo "* Conta le righe dei moduli *" echo "* *" echo "* *" echo "**********************************************************" echo read -p "Premi un tasto per continuare" RES ls -l l'istruzione self.p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=self.args['cwd']) e successivo uso di self.p.stdout.read(1024) consente la lettura del messaggo "Premi...." MA NON l'inserimento della risposta (ovviamente) l'istruzione self.p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, cwd=self.args['cwd']) e successivo uso di self.p.stdout.read(1024) consente l'inserimento della risposta, MA NON la visualizzazione del messaggio "Premi...." (stranamente) Sapete darmi qualche suggerimento? Grazie |
|
Scritto da ㎝ |
2017-09-25 11:03:34 - Re: subprocess: read output write input
|
communicate
https://docs.python.org/3.6/library/subprocess.html#subprocess.Popen.communicate dovrebbe fare al caso tuo, no? ㎝ THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝ |
|
Scritto da eugenio |
2017-09-25 11:31:19 - Re: subprocess: read output write input
|
Non posso usare communicate.
L'output deve essre visualizzato progressivamente. Ti allego il file con il relativo codice. Cosi' forse la faccenda e' piu' chiara. Certo che e' strano!!! |
Pagina: 1
Esegui il login per scrivere una risposta.