将进度条写入文件

Writing progress bar into file

我有子进程已将 stdout 和 stderr 重定向到文件:

file = open(self._file_path, 'w+')
pipe = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=file, stderr=file)

子进程正在将进度条写入标准输出:

sys.stdout.write('\r{0:.2f}%'.format(float(self.counter)/self.count*100))
sys.stdout.flush()

但是运输 return 不工作,结果是:

3.23%
6.45%
9.68%
...
100.00%

没有标准输出重定向到文件(使用 subprocess.PIPE 代替)在控制台中一切正常,我在同一行上取得进展。

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