Ho un processo principale in cui eseguo un sottoprocesso, che stdin è quello che voglio pipe. So che posso farlo utilizzando file:Stdin dei tubi sottoprocesso senza utilizzare i file
import subprocess
subprocess.call('shell command', stdin=open('somefile','mode'))
C'è qualche possibilità di utilizzare un tubo stdin personalizzato senza effettivi file del disco rigido? C'è qualche opzione, ad esempio, per usare la lista di stringhe (ogni elemento di lista sarebbe una nuova riga)?
So che il sottoprocesso Python chiama .readline()
sull'oggetto pipe.
Anche se non necessariamente la risposta alla tua domanda, vale la pena ricordare che qualsiasi sistema operativo compatibile con POSIX supporta l'uso di/dev/stdin come un 'file', questo funziona in tutto il scheda con comandi shell utilizzando un EOF per terminare lo stream. Ho appena verificato ciò usando tcsh e bash su OSX, Linux e OpenBSD. – synthesizerpatel
@synthesizerpatel non è una risposta, ma grazie per un prezioso commento! – ducin
Beh .. In tutta onestà, è ** una ** risposta. Solo ** la ** risposta. : D – synthesizerpatel