Это продолжение этого вопроса, но если я хочу передать аргумент stdin
to subprocess
, как я могу получить вывод в в реальном времени? Это то, что я сейчас имею; Я также попытался заменить Popen
на call
из модуля subprocess
, и это просто приводит к зависанию script.
from subprocess import Popen, PIPE, STDOUT
cmd = 'rsync --rsh=ssh -rv --files-from=- thisdir/ servername:folder/'
p = Popen(cmd.split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
subfolders = '\n'.join(['subfolder1','subfolder2'])
output = p.communicate(input=subfolders)[0]
print output
В первом вопросе, где мне не нужно было проходить stdin
, мне предложили использовать p.stdout.readline
, там нет места, где можно было бы что-либо передать stdin
.
Приложение: Это работает для передачи, но я вижу вывод только в конце, и я хотел бы видеть детали передачи, когда это происходит.