Mam główny proces, w którym uruchamiam podproces, którego stdin jest tym, co chcę wyprowadzić. Wiem, że mogę to zrobić, używając plików:Podprocesowe stdin bez użycia plików
import subprocess
subprocess.call('shell command', stdin=open('somefile','mode'))
Czy istnieje opcja użycia niestandardowej rury stdin BEZ rzeczywistych plików na dysku twardym? Czy jest jakaś opcja, na przykład, aby użyć listy ciągów znaków (każdy element listy byłby znakiem nowej linii)?
Wiem, że podprocesor Pythona wywołuje .readline()
na obiekcie potoku.
Choć niekoniecznie odpowiedź na swoje pytanie, to warto wspomnieć, że każdy zgodny system operacyjny POSIX obsługuje użycie/dev/stdin jako „Plik”, to działa w poprzek tablica z poleceniami powłoki za pomocą EOF do zakończenia strumienia. Właśnie to zweryfikowałem używając tcsh i bash w systemach OSX, Linux i OpenBSD. – synthesizerpatel
@synthesizerpatel nie jest odpowiedzią, ale dzięki za cenny komentarz! – ducin
Cóż .. W uczciwości to ** ** odpowiedź. Po prostu nie ** ** odpowiedź. : D – synthesizerpatel