小编Joh*_*n A的帖子

从子进程实时捕获stdout

我想subprocess.Popen()在Windows中使用rsync.exe,并在Python中打印stdout.

我的代码有效,但在文件传输完成之前它没有抓住进度!我想实时打印每个文件的进度.

现在使用Python 3.1,因为我听说它应该更好地处理IO.

import subprocess, time, os, sys

cmd = "rsync.exe -vaz -P source/ dest/"
p, line = True, 'start'


p = subprocess.Popen(cmd,
                     shell=True,
                     bufsize=64,
                     stdin=subprocess.PIPE,
                     stderr=subprocess.PIPE,
                     stdout=subprocess.PIPE)

for line in p.stdout:
    print(">>> " + str(line.rstrip()))
    p.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

python subprocess stdout

74
推荐指数
9
解决办法
10万
查看次数

标签 统计

python ×1

stdout ×1

subprocess ×1