我的子进程已将stdout和stderr重定向到file:
file = open(self._file_path, 'w+')
pipe = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=file, stderr=file)
子进程正在将进度条写入stdout:
sys.stdout.write('\r{0:.2f}%'.format(float(self.counter)/self.count*100))
sys.stdout.flush()
但回车不起作用,结果是:
3.23%
6.45%
9.68%
...
100.00%
没有stdout重定向到文件(改为使用subprocess.PIPE),所有在控制台中工作正常,我在同一行上取得了进展。
答案 0 :(得分:1)
如果您希望文件与控制台类似,请在写入新输出之前删除文件的内容,或使用seek()方法转到行的开头