慕森卡
在另一个答案的帮助下,我终于找到了解决方案。该想法是使用处理,压缩文件的总大小的压缩文件的大小,并将其用于估计的剩余时间的时间。为达到这个,将压缩文件作为字节对象读入内存:byte_data,速度相当快计算byte_data使用的大小total_size = len(byte_data)包装byte_data为byte_f = io.BytesIO(byte_data)包装byte_f为bz2f = bz2.BZ2File(byte_f)在处理过程中,使用pos = byte_f.tell()获取压缩文件中的当前位置计算处理的确切百分比 percent = pos/total_size记录使用时间,并计算剩余时间几秒钟后,估计会变得非常准确:0.01% processed, 2.00s elapsed, 17514.27s remaining...0.02% processed, 4.00s elapsed, 20167.48s remaining...0.03% processed, 6.00s elapsed, 21239.60s remaining...0.04% processed, 8.00s elapsed, 21818.91s remaining...0.05% processed, 10.00s elapsed, 22180.76s remaining...0.05% processed, 12.00s elapsed, 22427.78s remaining...0.06% processed, 14.00s elapsed, 22661.80s remaining...0.07% processed, 16.00s elapsed, 22840.45s remaining...0.08% processed, 18.00s elapsed, 22937.07s remaining.......99.97% processed, 22704.28s elapsed, 6.27s remaining...99.98% processed, 22706.28s elapsed, 4.40s remaining...99.99% processed, 22708.28s elapsed, 2.45s remaining...100.00% processed, 22710.28s elapsed, 0.54s remaining...