Sto lottando per utilizzare i sottoprocessi con python. Qui è il mio compito:Uso di python con sottoprocesso Popen
- avviare un api tramite la riga di comando (questo dovrebbe essere differente che l'esecuzione di qualsiasi argomento sulla riga di comando)
- verificare la mia API ha messo a punto. Il modo più semplice per farlo sarebbe quello di sondare lo standard.
- Eseguire un comando contro l'API. Un prompt dei comandi appare quando sono in grado di eseguire un nuovo comando
- Verificare il completamento del comando tramite il polling lo standard out (l'API non supporta la registrazione)
Quello che ho provato finora:
1 Sono bloccato qui usando il Popen. Capisco che se io uso subprocess.call("put command here")
questo funziona. Ho voluto provare ad usare qualcosa di simile a:
import subprocess
def run_command(command):
p = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
dove io uso run_command("insert command here")
, ma questo non fa nulla.
rispetto a 2. Penso che la risposta dovrebbe essere simile a qui: Running shell command from Python and capturing the output, ma non riesco a 1. al lavoro, non ho provato ancora.
Giusto per aggiungere che, AFAICT, il sottoprocesso modulo è veramente orientato verso le attività che vengono eseguite con il loro input iniziale e quindi complete (come richiamare una funzione). Se hai bisogno di un continuo avanti e indietro (ad esempio per un'utilità di terminale interattiva), allora Pexpect è * sicuramente * la strada da percorrere. – TimStaley