将进度条写入文件

时间:2015-06-23 19:25:46

标签: python python-2.7 progress-bar

我的子进程已将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),所有在控制台中工作正常,我在同一行上取得了进展。

1 个答案:

答案 0 :(得分:1)

如果您希望文件与控制台类似,请在写入新输出之前删除文件的内容,或使用seek()方法转到行的开头