C'è un modo per effettuare una chiamata di sottoprocesso in python "persistente"? Sto chiamando un programma che richiede un po 'di tempo per caricare più volte. Quindi sarebbe bello se potessi lasciare quel programma aperto e comunicare con esso senza ucciderlo.Sottoprocesso Python persistente
La versione a fumetti del mio script python assomiglia a questo:
for text in textcollection:
myprocess = subprocess.Popen(["myexecutable"],
stdin = subprocess.PIPE, stdout = subprocess.PIPE,
stderr = None)
myoutputtext, err = myprocess.communicate(input=text)
Ho bisogno di elaborare ogni testo separatamente, in modo che unisce il tutto in un unico grande file di testo e l'elaborazione di una volta non è un'opzione.
Preferibilmente, se c'è un'opzione come questa
myprocess = subprocess.Popen(["myexecutable"],
stdin = subprocess.PIPE, stdout = subprocess.PIPE,
stderr = None) for text in textcollection:
for text in textcollection:
myoutputtext, err = myprocess.communicate(input=text)
dove posso lasciare il processo aperto, mi piacerebbe davvero apprezzare.
Grazie! Mi piace la tua soluzione al meglio dal momento che non richiede il download di terze parti. Sfortunatamente, non funziona per me. Dopo aver provato alcune cose, sono abbastanza sicuro che sia un problema con il programma java che sto chiamando piuttosto che la tua soluzione, quindi la tua soluzione è buona. – JasonMond
Perché il voto negativo? –
Questo è stato per errore. Il mio upvote è inattivo fino a quando tutto sarà modificato, ma non vedo nulla da migliorare o non ferire. Risposta perfetta – hynekcer