这是对这个问题的跟进,但如果我想将参数传递给stdin
to subprocess
,我怎样才能实时获得输出?这是我目前拥有的;我也尝试从模块中替换Popen
,这只会导致脚本挂起。call
subprocess
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
。
附录:这适用于转移,但我只在最后看到输出,我想在转移发生时查看转移的详细信息。